{
  "files": [
    "src/behaviors/attractor.js",
    "src/behaviors/body-collision-detection.js",
    "src/behaviors/body-impulse-response.js",
    "src/behaviors/constant-acceleration.js",
    "src/behaviors/edge-collision-detection.js",
    "src/behaviors/interactive.js",
    "src/behaviors/newtonian.js",
    "src/behaviors/sweep-prune.js",
    "src/behaviors/verlet-constraints.js",
    "src/bodies/circle.js",
    "src/bodies/compound.js",
    "src/bodies/convex-polygon.js",
    "src/bodies/point.js",
    "src/bodies/rectangle.js",
    "src/core/behavior.js",
    "src/core/body.js",
    "src/core/geometry-helpers.js",
    "src/core/geometry.js",
    "src/core/integrator.js",
    "src/core/query.js",
    "src/core/renderer.js",
    "src/core/world.js",
    "src/geometries/circle.js",
    "src/geometries/compound.js",
    "src/geometries/convex-polygon.js",
    "src/geometries/point.js",
    "src/geometries/rectangle.js",
    "src/integrators/improved-euler.js",
    "src/integrators/velocity-verlet-alt.js",
    "src/integrators/velocity-verlet.js",
    "src/integrators/verlet.js",
    "src/intro.js",
    "src/math/aabb.js",
    "src/math/gjk.js",
    "src/math/statistics.js",
    "src/math/transform.js",
    "src/math/vector.js",
    "src/outro.js",
    "src/renderers/canvas.js",
    "src/renderers/debug.js",
    "src/renderers/dom.js",
    "src/renderers/pixi-renderer.js",
    "src/util/decorator.js",
    "src/util/helpers.js",
    "src/util/noconflict.js",
    "src/util/pubsub.js",
    "src/util/scratchpad.js",
    "src/util/ticker.js"
  ],
  "list": {
    "AttractorBehavior": {
      "id": "AttractorBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('attractor')`.\n\nAttractor behavior attracts bodies to a specific point.\n\nAdditional options include:\n- pos: The position of the attraction point\n- strength: How strong the attraction is (default: `1`)\n- order: The power of the inverse distance (default: `2` because that is newtonian gravity... inverse square)\n- max: The maximum distance in which to apply the attraction (default: Infinity)\n- min: The minimum distance above which to apply the attraction (default: very small non-zero)",
      "short_description": "`Physics.behavior('attractor')`.\n",
      "line": 15,
      "aliases": [],
      "children": [
        {
          "id": "AttractorBehavior#position",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "pos",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The position to set\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                },
                {
                  "type": "this",
                  "description": " For chaining\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "pos",
              "types": [
                "Vectorish"
              ],
              "description": " The position to set\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
            },
            {
              "type": "this",
              "description": " For chaining\n\n     "
            }
          ],
          "description": "Get or set the position of the attractor.",
          "short_description": "Get or set the position of the attractor.",
          "line": 56,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/attractor.js",
          "name": "position",
          "name_prefix": "AttractorBehavior#",
          "path": "AttractorBehavior.prototype.position",
          "outFile": "attractor.html#AttractorBehavior.prototype.position"
        }
      ],
      "file": "src/behaviors/attractor.js",
      "subclasses": [],
      "name": "AttractorBehavior",
      "path": "AttractorBehavior",
      "outFile": "attractor.html"
    },
    "AttractorBehavior#position": {
      "id": "AttractorBehavior#position",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "pos",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The position to set\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
            },
            {
              "type": "this",
              "description": " For chaining\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "pos",
          "types": [
            "Vectorish"
          ],
          "description": " The position to set\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
        },
        {
          "type": "this",
          "description": " For chaining\n\n     "
        }
      ],
      "description": "Get or set the position of the attractor.",
      "short_description": "Get or set the position of the attractor.",
      "line": 56,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/attractor.js",
      "name": "position",
      "name_prefix": "AttractorBehavior#",
      "path": "AttractorBehavior.prototype.position",
      "outFile": "attractor.html#AttractorBehavior.prototype.position"
    },
    "BodyCollisionDetectionBehavior": {
      "id": "BodyCollisionDetectionBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('body-collision-detection')`.\n\nDetect collisions of bodies.\n\nPublishes collision events to the world as a group of detected collisions per iteration.\n\nThe event data will have a `.collisions` property that is an array of collisions of the form:\n\n```javascript\n{\n    bodyA: // the first body\n    bodyB: // the second body\n    norm: // the normal vector (Vectorish)\n    mtv: // the minimum transit vector. (the direction and length needed to extract bodyB from bodyA)\n    pos: // the collision point relative to bodyA\n    overlap: // the amount bodyA overlaps bodyB\n}\n```\n\nAdditional options include:\n- check: channel to listen to for collision candidates (default: `collisions:candidates`). set to `true` to force check every pair of bodies in the world\n- channel: channel to publish events to (default: `collisions:detected`)",
      "short_description": "`Physics.behavior('body-collision-detection')`.\n",
      "line": 27,
      "aliases": [],
      "children": [
        {
          "id": "BodyCollisionDetectionBehavior#check",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
          "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
          "line": 366,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/body-collision-detection.js",
          "name": "check",
          "name_prefix": "BodyCollisionDetectionBehavior#",
          "path": "BodyCollisionDetectionBehavior.prototype.check",
          "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
        },
        {
          "id": "BodyCollisionDetectionBehavior#checkAll",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to check all pairs of objects in the list for collisions",
          "short_description": "Event callback to check all pairs of objects in the list for collisions",
          "line": 428,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/body-collision-detection.js",
          "name": "checkAll",
          "name_prefix": "BodyCollisionDetectionBehavior#",
          "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
          "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
        }
      ],
      "file": "src/behaviors/body-collision-detection.js",
      "subclasses": [],
      "name": "BodyCollisionDetectionBehavior",
      "path": "BodyCollisionDetectionBehavior",
      "outFile": "body-collision-detection.html"
    },
    "BodyCollisionDetectionBehavior#check": {
      "id": "BodyCollisionDetectionBehavior#check",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " The event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
      "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
      "line": 366,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/body-collision-detection.js",
      "name": "check",
      "name_prefix": "BodyCollisionDetectionBehavior#",
      "path": "BodyCollisionDetectionBehavior.prototype.check",
      "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
    },
    "BodyCollisionDetectionBehavior#checkAll": {
      "id": "BodyCollisionDetectionBehavior#checkAll",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " The event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to check all pairs of objects in the list for collisions",
      "short_description": "Event callback to check all pairs of objects in the list for collisions",
      "line": 428,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/body-collision-detection.js",
      "name": "checkAll",
      "name_prefix": "BodyCollisionDetectionBehavior#",
      "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
      "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
    },
    "BodyImpulseResponseBehavior": {
      "id": "BodyImpulseResponseBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('body-impulse-response')`.\n\nResponds to collisions by applying impulses.\n\nAdditional options include:\n- check: channel to listen to for collisions (default: `collisions:detected`).\n- mtvThreshold: apply partial extraction of bodies if the minimum transit vector is less than this value ( default: `1`)\n  this will depend on your simulation characteristic length scale\n- bodyExtractDropoff: every body overlap correction (underneith mtvThreshold) will only extract by this fraction (0..1). Helps with stablizing contacts. (default: `0.5`)\n- forceWakeupAboveOverlapThreshold: force bodies to wake up if the overlap is above mtvThreshold ( default: `true` )",
      "short_description": "`Physics.behavior('body-impulse-response')`.\n",
      "line": 15,
      "aliases": [],
      "children": [
        {
          "id": "BodyImpulseResponseBehavior#collideBodes",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Object"
                  ],
                  "description": " First Body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Object"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "normal",
                  "types": [
                    "Vector"
                  ],
                  "description": " Normal vector of the collision surface\n\n     "
                },
                {
                  "name": "point",
                  "types": [
                    "Vector"
                  ],
                  "description": " Contact point of the collision\n\n     "
                },
                {
                  "name": "mtrans",
                  "types": [
                    "Vector"
                  ],
                  "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                },
                {
                  "name": "contact",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Are the bodies in resting contact relative to each other\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Object"
              ],
              "description": " First Body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Object"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "normal",
              "types": [
                "Vector"
              ],
              "description": " Normal vector of the collision surface\n\n     "
            },
            {
              "name": "point",
              "types": [
                "Vector"
              ],
              "description": " Contact point of the collision\n\n     "
            },
            {
              "name": "mtrans",
              "types": [
                "Vector"
              ],
              "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
            },
            {
              "name": "contact",
              "types": [
                "Boolean"
              ],
              "description": " Are the bodies in resting contact relative to each other\n\n     "
            }
          ],
          "internal": true,
          "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
          "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
          "line": 88,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/body-impulse-response.js",
          "name": "collideBodes",
          "name_prefix": "BodyImpulseResponseBehavior#",
          "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
          "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
        },
        {
          "id": "BodyImpulseResponseBehavior#respond",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to respond to collision data.",
          "short_description": "Event callback to respond to collision data.",
          "line": 281,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/body-impulse-response.js",
          "name": "respond",
          "name_prefix": "BodyImpulseResponseBehavior#",
          "path": "BodyImpulseResponseBehavior.prototype.respond",
          "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
        }
      ],
      "file": "src/behaviors/body-impulse-response.js",
      "subclasses": [],
      "name": "BodyImpulseResponseBehavior",
      "path": "BodyImpulseResponseBehavior",
      "outFile": "body-impulse-response.html"
    },
    "BodyImpulseResponseBehavior#collideBodes": {
      "id": "BodyImpulseResponseBehavior#collideBodes",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Object"
              ],
              "description": " First Body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Object"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "normal",
              "types": [
                "Vector"
              ],
              "description": " Normal vector of the collision surface\n\n     "
            },
            {
              "name": "point",
              "types": [
                "Vector"
              ],
              "description": " Contact point of the collision\n\n     "
            },
            {
              "name": "mtrans",
              "types": [
                "Vector"
              ],
              "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
            },
            {
              "name": "contact",
              "types": [
                "Boolean"
              ],
              "description": " Are the bodies in resting contact relative to each other\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodyA",
          "types": [
            "Object"
          ],
          "description": " First Body\n\n     "
        },
        {
          "name": "bodyB",
          "types": [
            "Object"
          ],
          "description": " Second body\n\n     "
        },
        {
          "name": "normal",
          "types": [
            "Vector"
          ],
          "description": " Normal vector of the collision surface\n\n     "
        },
        {
          "name": "point",
          "types": [
            "Vector"
          ],
          "description": " Contact point of the collision\n\n     "
        },
        {
          "name": "mtrans",
          "types": [
            "Vector"
          ],
          "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
        },
        {
          "name": "contact",
          "types": [
            "Boolean"
          ],
          "description": " Are the bodies in resting contact relative to each other\n\n     "
        }
      ],
      "internal": true,
      "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
      "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
      "line": 88,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/body-impulse-response.js",
      "name": "collideBodes",
      "name_prefix": "BodyImpulseResponseBehavior#",
      "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
      "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
    },
    "BodyImpulseResponseBehavior#respond": {
      "id": "BodyImpulseResponseBehavior#respond",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to respond to collision data.",
      "short_description": "Event callback to respond to collision data.",
      "line": 281,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/body-impulse-response.js",
      "name": "respond",
      "name_prefix": "BodyImpulseResponseBehavior#",
      "path": "BodyImpulseResponseBehavior.prototype.respond",
      "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
    },
    "ConstantAccelerationBehavior": {
      "id": "ConstantAccelerationBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('constant-acceleration')`.\n\nConstant acceleration behavior.\n\nBasically the \"gravity\" behavior. Used to give \"earth-like gravity\" to the world.\n\nAdditional options include:\n- acc: The acceleration vector (Vectorish). (default: `{ x: 0, y: 0.0004 }`)",
      "short_description": "`Physics.behavior('constant-acceleration')`.\n",
      "line": 13,
      "aliases": [],
      "children": [
        {
          "id": "ConstantAccelerationBehavior#setAcceleration",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "acc",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The acceleration vector\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "acc",
              "types": [
                "Vectorish"
              ],
              "description": " The acceleration vector\n\n     "
            }
          ],
          "description": "Set the acceleration of the behavior.",
          "short_description": "Set the acceleration of the behavior.",
          "line": 41,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/constant-acceleration.js",
          "name": "setAcceleration",
          "name_prefix": "ConstantAccelerationBehavior#",
          "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
          "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
        }
      ],
      "file": "src/behaviors/constant-acceleration.js",
      "subclasses": [],
      "name": "ConstantAccelerationBehavior",
      "path": "ConstantAccelerationBehavior",
      "outFile": "constant-acceleration.html"
    },
    "ConstantAccelerationBehavior#setAcceleration": {
      "id": "ConstantAccelerationBehavior#setAcceleration",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "acc",
              "types": [
                "Vectorish"
              ],
              "description": " The acceleration vector\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "acc",
          "types": [
            "Vectorish"
          ],
          "description": " The acceleration vector\n\n     "
        }
      ],
      "description": "Set the acceleration of the behavior.",
      "short_description": "Set the acceleration of the behavior.",
      "line": 41,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/constant-acceleration.js",
      "name": "setAcceleration",
      "name_prefix": "ConstantAccelerationBehavior#",
      "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
      "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
    },
    "EdgeCollisionDetectionBehavior": {
      "id": "EdgeCollisionDetectionBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('edge-collision-detection')`.\n\nUsed to detect collisions with the boundaries of an AABB.\n\nAdditional options include:\n- aabb: The [[Physics.aabb]] bounds to use as the constraining boundary\n- restitution: The restitution of the boundary walls (default: `0.99`)\n- cof: The coefficient of friction of the boundary walls (default: `1`)\n- channel: The channel to publish collisions to. (default: 'collisions:detected')",
      "short_description": "`Physics.behavior('edge-collision-detection')`.\n",
      "line": 14,
      "aliases": [],
      "children": [
        {
          "id": "EdgeCollisionDetectionBehavior#checkAll",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to check all bodies for collisions with the edge",
          "short_description": "Event callback to check all bodies for collisions with the edge",
          "line": 227,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/edge-collision-detection.js",
          "name": "checkAll",
          "name_prefix": "EdgeCollisionDetectionBehavior#",
          "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
          "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
        },
        {
          "id": "EdgeCollisionDetectionBehavior#setAABB",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Physics.aabb"
                  ],
                  "description": " The aabb to use as the boundary\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Physics.aabb"
              ],
              "description": " The aabb to use as the boundary\n\n     "
            }
          ],
          "description": "Set the boundaries of the edge.",
          "short_description": "Set the boundaries of the edge.",
          "line": 189,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/edge-collision-detection.js",
          "name": "setAABB",
          "name_prefix": "EdgeCollisionDetectionBehavior#",
          "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
          "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
        }
      ],
      "file": "src/behaviors/edge-collision-detection.js",
      "subclasses": [],
      "name": "EdgeCollisionDetectionBehavior",
      "path": "EdgeCollisionDetectionBehavior",
      "outFile": "edge-collision-detection.html"
    },
    "EdgeCollisionDetectionBehavior#setAABB": {
      "id": "EdgeCollisionDetectionBehavior#setAABB",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Physics.aabb"
              ],
              "description": " The aabb to use as the boundary\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "aabb",
          "types": [
            "Physics.aabb"
          ],
          "description": " The aabb to use as the boundary\n\n     "
        }
      ],
      "description": "Set the boundaries of the edge.",
      "short_description": "Set the boundaries of the edge.",
      "line": 189,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/edge-collision-detection.js",
      "name": "setAABB",
      "name_prefix": "EdgeCollisionDetectionBehavior#",
      "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
      "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
    },
    "EdgeCollisionDetectionBehavior#checkAll": {
      "id": "EdgeCollisionDetectionBehavior#checkAll",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " Event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to check all bodies for collisions with the edge",
      "short_description": "Event callback to check all bodies for collisions with the edge",
      "line": 227,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/edge-collision-detection.js",
      "name": "checkAll",
      "name_prefix": "EdgeCollisionDetectionBehavior#",
      "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
      "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
    },
    "InteractiveBehavior": {
      "id": "InteractiveBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('interactive')`.\n\nUser interaction helper.\n\nUsed to get mouse/touch events and add grab interactions.\n\nAdditional options include:\n- el: The element of the renderer. What you input as the `el` for the renderer.\n- moveThrottle: The min time between move events (default: `10`).\n- minVel: The minimum velocity clamp [[Vectorish]] (default: { x: -5, y: -5 }) to restrict velocity a user can give to a body\n- maxVel: The maximum velocity clamp [[Vectorish]] (default: { x: 5, y: 5 }) to restrict velocity a user can give to a body\n\nThe behavior also triggers the following events on the world:\n```javascript\n// a body has been grabbed\nworld.on('interact:grab', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed\n});\n// no body was grabbed, but the renderer area was clicked, or touched\nworld.on('interact:poke', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n});\n// when a mouse or pointer moves\nworld.on('interact:move', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the grabbed body that was moved (if applicable)\n});\n// when the viewport is released (mouseup, touchend)\nworld.on('interact:release', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed (if applicable)\n});\n```\n\nThe behavior also sets body.isGrabbed = true for any grabbed bodies while they are grabbed.",
      "short_description": "`Physics.behavior('interactive')`.\n",
      "line": 45,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/interactive.js",
      "subclasses": [],
      "name": "InteractiveBehavior",
      "path": "InteractiveBehavior",
      "outFile": "interactive.html"
    },
    "NewtonianBehavior": {
      "id": "NewtonianBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('newtonian')`.\n\nNewtonian attraction between bodies (inverse square law).\n\nAdditional options include:\n- strength: The strength of the interaction between bodies. (default: `1`)\n- max: The maximum distance between bodies at which to apply the behavior. (default: `false`... infinite)\n- min: The minimum distance between bodies at which to apply the behavior. (default: `false`... autocalculate)",
      "short_description": "`Physics.behavior('newtonian')`.\n",
      "line": 13,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/newtonian.js",
      "subclasses": [],
      "name": "NewtonianBehavior",
      "path": "NewtonianBehavior",
      "outFile": "newtonian.html"
    },
    "SweepPruneBehavior": {
      "id": "SweepPruneBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('sweep-prune')`.\n\nSweep and Prune implementation for broad phase collision detection.\n\nThis massively improves the speed of collision detection. It's set up to always be used with [[BodyCollisionDetection]], and [[BodyImpulseResponse]].\n\nAdditional options include:\n- channel: The channel to publish collision candidates to. (default: `collisions:candidates`)",
      "short_description": "`Physics.behavior('sweep-prune')`.\n",
      "line": 13,
      "aliases": [],
      "children": [
        {
          "id": "SweepPruneBehavior#broadPhase",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " The candidate data of overlapping aabbs\n\n     "
            }
          ],
          "internal": true,
          "description": "Execute the broad phase and get candidate collisions",
          "short_description": "Execute the broad phase and get candidate collisions",
          "line": 95,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "broadPhase",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.broadPhase",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
        },
        {
          "id": "SweepPruneBehavior#checkOverlaps",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " List of candidate collisions\n\n     "
            }
          ],
          "internal": true,
          "description": "Check each axis for overlaps of bodies AABBs",
          "short_description": "Check each axis for overlaps of bodies AABBs",
          "line": 257,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "checkOverlaps",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.checkOverlaps",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
        },
        {
          "id": "SweepPruneBehavior#clear",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "description": "Refresh tracking data",
          "short_description": "Refresh tracking data",
          "line": 52,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "clear",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.clear",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
        },
        {
          "id": "SweepPruneBehavior#getPair",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "tr1",
                  "types": [
                    "Object"
                  ],
                  "description": " First tracker\n\n     "
                },
                {
                  "name": "tr2",
                  "types": [
                    "Object"
                  ],
                  "description": " Second tracker\n\n     "
                },
                {
                  "name": "doCreate",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Create if not found\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Pair object or null if not found\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "tr1",
              "types": [
                "Object"
              ],
              "description": " First tracker\n\n     "
            },
            {
              "name": "tr2",
              "types": [
                "Object"
              ],
              "description": " Second tracker\n\n     "
            },
            {
              "name": "doCreate",
              "types": [
                "Boolean"
              ],
              "description": " Create if not found\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Pair object or null if not found\n\n     "
            }
          ],
          "internal": true,
          "description": "Get a pair object for the tracker objects",
          "short_description": "Get a pair object for the tracker objects",
          "line": 181,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "getPair",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.getPair",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
        },
        {
          "id": "SweepPruneBehavior#sortIntervalLists",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "internal": true,
          "description": "Simple insertion sort for each axis",
          "short_description": "Simple insertion sort for each axis",
          "line": 112,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "sortIntervalLists",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.sortIntervalLists",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
        },
        {
          "id": "SweepPruneBehavior#sweep",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to sweep and publish event if any candidate collisions are found",
          "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
          "line": 487,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "sweep",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.sweep",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
        },
        {
          "id": "SweepPruneBehavior#trackBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to add body to list of those tracked by sweep and prune",
          "short_description": "Event callback to add body to list of those tracked by sweep and prune",
          "line": 393,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "trackBody",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.trackBody",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
        },
        {
          "id": "SweepPruneBehavior#untrackBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ],
          "internal": true,
          "description": "Event callback to remove body from list of those tracked",
          "short_description": "Event callback to remove body from list of those tracked",
          "line": 432,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "untrackBody",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.untrackBody",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
        },
        {
          "id": "SweepPruneBehavior#updateIntervals",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "internal": true,
          "description": "Update position intervals on each axis",
          "short_description": "Update position intervals on each axis",
          "line": 364,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/sweep-prune.js",
          "name": "updateIntervals",
          "name_prefix": "SweepPruneBehavior#",
          "path": "SweepPruneBehavior.prototype.updateIntervals",
          "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
        }
      ],
      "file": "src/behaviors/sweep-prune.js",
      "subclasses": [],
      "name": "SweepPruneBehavior",
      "path": "SweepPruneBehavior",
      "outFile": "sweep-prune.html"
    },
    "SweepPruneBehavior#clear": {
      "id": "SweepPruneBehavior#clear",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "description": "Refresh tracking data",
      "short_description": "Refresh tracking data",
      "line": 52,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "clear",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.clear",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
    },
    "SweepPruneBehavior#broadPhase": {
      "id": "SweepPruneBehavior#broadPhase",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " The candidate data of overlapping aabbs\n\n     "
        }
      ],
      "internal": true,
      "description": "Execute the broad phase and get candidate collisions",
      "short_description": "Execute the broad phase and get candidate collisions",
      "line": 95,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "broadPhase",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.broadPhase",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
    },
    "SweepPruneBehavior#sortIntervalLists": {
      "id": "SweepPruneBehavior#sortIntervalLists",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "internal": true,
      "description": "Simple insertion sort for each axis",
      "short_description": "Simple insertion sort for each axis",
      "line": 112,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "sortIntervalLists",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.sortIntervalLists",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
    },
    "SweepPruneBehavior#getPair": {
      "id": "SweepPruneBehavior#getPair",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "tr1",
              "types": [
                "Object"
              ],
              "description": " First tracker\n\n     "
            },
            {
              "name": "tr2",
              "types": [
                "Object"
              ],
              "description": " Second tracker\n\n     "
            },
            {
              "name": "doCreate",
              "types": [
                "Boolean"
              ],
              "description": " Create if not found\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Pair object or null if not found\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "tr1",
          "types": [
            "Object"
          ],
          "description": " First tracker\n\n     "
        },
        {
          "name": "tr2",
          "types": [
            "Object"
          ],
          "description": " Second tracker\n\n     "
        },
        {
          "name": "doCreate",
          "types": [
            "Boolean"
          ],
          "description": " Create if not found\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " Pair object or null if not found\n\n     "
        }
      ],
      "internal": true,
      "description": "Get a pair object for the tracker objects",
      "short_description": "Get a pair object for the tracker objects",
      "line": 181,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "getPair",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.getPair",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
    },
    "SweepPruneBehavior#checkOverlaps": {
      "id": "SweepPruneBehavior#checkOverlaps",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " List of candidate collisions\n\n     "
        }
      ],
      "internal": true,
      "description": "Check each axis for overlaps of bodies AABBs",
      "short_description": "Check each axis for overlaps of bodies AABBs",
      "line": 257,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "checkOverlaps",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.checkOverlaps",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
    },
    "SweepPruneBehavior#updateIntervals": {
      "id": "SweepPruneBehavior#updateIntervals",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "internal": true,
      "description": "Update position intervals on each axis",
      "short_description": "Update position intervals on each axis",
      "line": 364,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "updateIntervals",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.updateIntervals",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
    },
    "SweepPruneBehavior#trackBody": {
      "id": "SweepPruneBehavior#trackBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " Event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to add body to list of those tracked by sweep and prune",
      "short_description": "Event callback to add body to list of those tracked by sweep and prune",
      "line": 393,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "trackBody",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.trackBody",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
    },
    "SweepPruneBehavior#untrackBody": {
      "id": "SweepPruneBehavior#untrackBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " Event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to remove body from list of those tracked",
      "short_description": "Event callback to remove body from list of those tracked",
      "line": 432,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "untrackBody",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.untrackBody",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
    },
    "SweepPruneBehavior#sweep": {
      "id": "SweepPruneBehavior#sweep",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " Event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " Event data\n\n     "
        }
      ],
      "internal": true,
      "description": "Event callback to sweep and publish event if any candidate collisions are found",
      "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
      "line": 487,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/sweep-prune.js",
      "name": "sweep",
      "name_prefix": "SweepPruneBehavior#",
      "path": "SweepPruneBehavior.prototype.sweep",
      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
    },
    "VerletConstraintsBehavior": {
      "id": "VerletConstraintsBehavior",
      "type": "class",
      "superclass": "Behavior",
      "description": "`Physics.behavior('verlet-constraints')`.\n\nVerlet constraints manager.\n\nHandles distance constraints, and angle constraints\n\nAdditional options include:\n- iterations: The number of iterations to take to relax the constraints. (default: `2`)",
      "short_description": "`Physics.behavior('verlet-constraints')`.\n",
      "line": 13,
      "aliases": [],
      "children": [
        {
          "id": "VerletConstraintsBehavior#angleConstraint",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Body"
                  ],
                  "description": " First body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Body"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "bodyC",
                  "types": [
                    "Body"
                  ],
                  "description": " Third body\n\n     "
                },
                {
                  "name": "stiffness",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                },
                {
                  "name": "targetAngle",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The constraint data object\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Body"
              ],
              "description": " First body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Body"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "bodyC",
              "types": [
                "Body"
              ],
              "description": " Third body\n\n     "
            },
            {
              "name": "stiffness",
              "types": [
                "Number"
              ],
              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
            },
            {
              "name": "targetAngle",
              "types": [
                "Number"
              ],
              "description": " Target angle. Defaults to the current angle between bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The constraint data object\n\n     "
            }
          ],
          "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
          "short_description": "Constrain three bodies to a target relative angle\n",
          "line": 129,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "angleConstraint",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.angleConstraint",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
        },
        {
          "id": "VerletConstraintsBehavior#distanceConstraint",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Body"
                  ],
                  "description": " First body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Body"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "stiffness",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                },
                {
                  "name": "targetLength",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Target length. defaults to current distance between the bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The constraint data object\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Body"
              ],
              "description": " First body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Body"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "stiffness",
              "types": [
                "Number"
              ],
              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
            },
            {
              "name": "targetLength",
              "types": [
                "Number"
              ],
              "description": " Target length. defaults to current distance between the bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The constraint data object\n\n     "
            }
          ],
          "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
          "short_description": "Constrain two bodies to a target relative distance.\n",
          "line": 86,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "distanceConstraint",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
        },
        {
          "id": "VerletConstraintsBehavior#drop",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Remove all constraints",
          "short_description": "Remove all constraints",
          "line": 60,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "drop",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.drop",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
        },
        {
          "id": "VerletConstraintsBehavior#getConstraints",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The object containing copied arrays of the constraints\n\n     "
            }
          ],
          "description": "Get all constraints.",
          "short_description": "Get all constraints.",
          "line": 419,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "getConstraints",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.getConstraints",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
        },
        {
          "id": "VerletConstraintsBehavior#remove",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "constraintData",
                  "types": [
                    "Object"
                  ],
                  "description": " The constraint data returned when creating a constraint\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "constraintId",
                  "types": [
                    "String"
                  ],
                  "description": " The constraint id\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "constraintData",
              "types": [
                "Object"
              ],
              "description": " The constraint data returned when creating a constraint\n\n     "
            },
            {
              "name": "constraintId",
              "types": [
                "String"
              ],
              "description": " The constraint id\n\n     "
            }
          ],
          "description": "Remove a constraint",
          "short_description": "Remove a constraint",
          "line": 160,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "remove",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.remove",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
        },
        {
          "id": "VerletConstraintsBehavior#resolve",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "internal": true,
          "description": "Resolve all constraints.",
          "short_description": "Resolve all constraints.",
          "line": 399,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "resolve",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.resolve",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
        },
        {
          "id": "VerletConstraintsBehavior#resolveAngleConstraints",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "coef",
                  "types": [
                    "Number"
                  ],
                  "description": " Coefficient for this resolution phase\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "coef",
              "types": [
                "Number"
              ],
              "description": " Coefficient for this resolution phase\n\n     "
            }
          ],
          "internal": true,
          "description": "Resolve angle constraints.",
          "short_description": "Resolve angle constraints.",
          "line": 205,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "resolveAngleConstraints",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
        },
        {
          "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "coef",
                  "types": [
                    "Number"
                  ],
                  "description": " Coefficient for this resolution phase\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "coef",
              "types": [
                "Number"
              ],
              "description": " Coefficient for this resolution phase\n\n     "
            }
          ],
          "internal": true,
          "description": "Resolve distance constraints.",
          "short_description": "Resolve distance constraints.",
          "line": 330,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "resolveDistanceConstraints",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
        },
        {
          "id": "VerletConstraintsBehavior#shuffleConstraints",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "internal": true,
          "description": "Mix up the constraints.",
          "short_description": "Mix up the constraints.",
          "line": 388,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/verlet-constraints.js",
          "name": "shuffleConstraints",
          "name_prefix": "VerletConstraintsBehavior#",
          "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
          "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
        }
      ],
      "file": "src/behaviors/verlet-constraints.js",
      "subclasses": [],
      "name": "VerletConstraintsBehavior",
      "path": "VerletConstraintsBehavior",
      "outFile": "verlet-constraints.html"
    },
    "VerletConstraintsBehavior#drop": {
      "id": "VerletConstraintsBehavior#drop",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Remove all constraints",
      "short_description": "Remove all constraints",
      "line": 60,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "drop",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.drop",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
    },
    "VerletConstraintsBehavior#distanceConstraint": {
      "id": "VerletConstraintsBehavior#distanceConstraint",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Body"
              ],
              "description": " First body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Body"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "stiffness",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
            },
            {
              "name": "targetLength",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Target length. defaults to current distance between the bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The constraint data object\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodyA",
          "types": [
            "Body"
          ],
          "description": " First body\n\n     "
        },
        {
          "name": "bodyB",
          "types": [
            "Body"
          ],
          "description": " Second body\n\n     "
        },
        {
          "name": "stiffness",
          "types": [
            "Number"
          ],
          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
        },
        {
          "name": "targetLength",
          "types": [
            "Number"
          ],
          "description": " Target length. defaults to current distance between the bodies\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The constraint data object\n\n     "
        }
      ],
      "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
      "short_description": "Constrain two bodies to a target relative distance.\n",
      "line": 86,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "distanceConstraint",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
    },
    "VerletConstraintsBehavior#angleConstraint": {
      "id": "VerletConstraintsBehavior#angleConstraint",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodyA",
              "types": [
                "Body"
              ],
              "description": " First body\n\n     "
            },
            {
              "name": "bodyB",
              "types": [
                "Body"
              ],
              "description": " Second body\n\n     "
            },
            {
              "name": "bodyC",
              "types": [
                "Body"
              ],
              "description": " Third body\n\n     "
            },
            {
              "name": "stiffness",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
            },
            {
              "name": "targetAngle",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Target angle. Defaults to the current angle between bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The constraint data object\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodyA",
          "types": [
            "Body"
          ],
          "description": " First body\n\n     "
        },
        {
          "name": "bodyB",
          "types": [
            "Body"
          ],
          "description": " Second body\n\n     "
        },
        {
          "name": "bodyC",
          "types": [
            "Body"
          ],
          "description": " Third body\n\n     "
        },
        {
          "name": "stiffness",
          "types": [
            "Number"
          ],
          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
        },
        {
          "name": "targetAngle",
          "types": [
            "Number"
          ],
          "description": " Target angle. Defaults to the current angle between bodies\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The constraint data object\n\n     "
        }
      ],
      "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
      "short_description": "Constrain three bodies to a target relative angle\n",
      "line": 129,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "angleConstraint",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.angleConstraint",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
    },
    "VerletConstraintsBehavior#remove": {
      "id": "VerletConstraintsBehavior#remove",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "constraintData",
              "types": [
                "Object"
              ],
              "description": " The constraint data returned when creating a constraint\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "constraintId",
              "types": [
                "String"
              ],
              "description": " The constraint id\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "constraintData",
          "types": [
            "Object"
          ],
          "description": " The constraint data returned when creating a constraint\n\n     "
        },
        {
          "name": "constraintId",
          "types": [
            "String"
          ],
          "description": " The constraint id\n\n     "
        }
      ],
      "description": "Remove a constraint",
      "short_description": "Remove a constraint",
      "line": 160,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "remove",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.remove",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
    },
    "VerletConstraintsBehavior#resolveAngleConstraints": {
      "id": "VerletConstraintsBehavior#resolveAngleConstraints",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "coef",
              "types": [
                "Number"
              ],
              "description": " Coefficient for this resolution phase\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "coef",
          "types": [
            "Number"
          ],
          "description": " Coefficient for this resolution phase\n\n     "
        }
      ],
      "internal": true,
      "description": "Resolve angle constraints.",
      "short_description": "Resolve angle constraints.",
      "line": 205,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "resolveAngleConstraints",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
    },
    "VerletConstraintsBehavior#resolveDistanceConstraints": {
      "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "coef",
              "types": [
                "Number"
              ],
              "description": " Coefficient for this resolution phase\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "coef",
          "types": [
            "Number"
          ],
          "description": " Coefficient for this resolution phase\n\n     "
        }
      ],
      "internal": true,
      "description": "Resolve distance constraints.",
      "short_description": "Resolve distance constraints.",
      "line": 330,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "resolveDistanceConstraints",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
    },
    "VerletConstraintsBehavior#shuffleConstraints": {
      "id": "VerletConstraintsBehavior#shuffleConstraints",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "internal": true,
      "description": "Mix up the constraints.",
      "short_description": "Mix up the constraints.",
      "line": 388,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "shuffleConstraints",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
    },
    "VerletConstraintsBehavior#resolve": {
      "id": "VerletConstraintsBehavior#resolve",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "internal": true,
      "description": "Resolve all constraints.",
      "short_description": "Resolve all constraints.",
      "line": 399,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "resolve",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.resolve",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
    },
    "VerletConstraintsBehavior#getConstraints": {
      "id": "VerletConstraintsBehavior#getConstraints",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The object containing copied arrays of the constraints\n\n     "
        }
      ],
      "description": "Get all constraints.",
      "short_description": "Get all constraints.",
      "line": 419,
      "aliases": [],
      "children": [],
      "file": "src/behaviors/verlet-constraints.js",
      "name": "getConstraints",
      "name_prefix": "VerletConstraintsBehavior#",
      "path": "VerletConstraintsBehavior.prototype.getConstraints",
      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
    },
    "CircleBody": {
      "id": "CircleBody",
      "type": "class",
      "superclass": "Body",
      "description": "Physics.body('circle')\n\nThe circle body has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
      "short_description": "Physics.body('circle')\n",
      "line": 24,
      "aliases": [],
      "children": [],
      "file": "src/bodies/circle.js",
      "subclasses": [],
      "name": "CircleBody",
      "path": "CircleBody",
      "outFile": "circle.html"
    },
    "CompoundBody": {
      "id": "CompoundBody",
      "type": "class",
      "superclass": "Body",
      "description": "Physics.body('compound')\n\nNot a body in itself. It's a container to group other bodies. The position of the body is the center of mass.\nIt must have at least one child before being added to the world.\n\nAdditional config options:\n\n- children: Array of [[Body]] objects.\n\nExample:\n\n```javascript\nvar thing = Physics.body('compound', {\n    // place the center of mass at (300, 200)\n    x: 300,\n    y: 200,\n    // the center of mass is automatically calculated and used to position the shape\n    children: [\n        body1,\n        body2,\n        // ...\n    ]\n});\n```",
      "short_description": "Physics.body('compound')\n",
      "line": 32,
      "aliases": [],
      "children": [
        {
          "id": "CompoundBody#addChild",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The child to add\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The child to add\n\n     "
            }
          ],
          "description": "Add a body as a child.",
          "short_description": "Add a body as a child.",
          "line": 68,
          "aliases": [],
          "children": [],
          "file": "src/bodies/compound.js",
          "name": "addChild",
          "name_prefix": "CompoundBody#",
          "path": "CompoundBody.prototype.addChild",
          "outFile": "compound.html#CompoundBody.prototype.addChild"
        },
        {
          "id": "CompoundBody#addChildren",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " The list of children to add\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " The list of children to add\n\n     "
            }
          ],
          "description": "Add an array of children to the compound.",
          "short_description": "Add an array of children to the compound.",
          "line": 80,
          "aliases": [],
          "children": [],
          "file": "src/bodies/compound.js",
          "name": "addChildren",
          "name_prefix": "CompoundBody#",
          "path": "CompoundBody.prototype.addChildren",
          "outFile": "compound.html#CompoundBody.prototype.addChildren"
        },
        {
          "id": "CompoundBody#clear",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Remove all children.",
          "short_description": "Remove all children.",
          "line": 142,
          "aliases": [],
          "children": [],
          "file": "src/bodies/compound.js",
          "name": "clear",
          "name_prefix": "CompoundBody#",
          "path": "CompoundBody.prototype.clear",
          "outFile": "compound.html#CompoundBody.prototype.clear"
        },
        {
          "id": "CompoundBody#refreshGeometry",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
          "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
          "line": 159,
          "aliases": [],
          "children": [],
          "file": "src/bodies/compound.js",
          "name": "refreshGeometry",
          "name_prefix": "CompoundBody#",
          "path": "CompoundBody.prototype.refreshGeometry",
          "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
        }
      ],
      "file": "src/bodies/compound.js",
      "subclasses": [],
      "name": "CompoundBody",
      "path": "CompoundBody",
      "outFile": "compound.html"
    },
    "CompoundBody#addChild": {
      "id": "CompoundBody#addChild",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The child to add\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " The child to add\n\n     "
        }
      ],
      "description": "Add a body as a child.",
      "short_description": "Add a body as a child.",
      "line": 68,
      "aliases": [],
      "children": [],
      "file": "src/bodies/compound.js",
      "name": "addChild",
      "name_prefix": "CompoundBody#",
      "path": "CompoundBody.prototype.addChild",
      "outFile": "compound.html#CompoundBody.prototype.addChild"
    },
    "CompoundBody#addChildren": {
      "id": "CompoundBody#addChildren",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " The list of children to add\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " The list of children to add\n\n     "
        }
      ],
      "description": "Add an array of children to the compound.",
      "short_description": "Add an array of children to the compound.",
      "line": 80,
      "aliases": [],
      "children": [],
      "file": "src/bodies/compound.js",
      "name": "addChildren",
      "name_prefix": "CompoundBody#",
      "path": "CompoundBody.prototype.addChildren",
      "outFile": "compound.html#CompoundBody.prototype.addChildren"
    },
    "CompoundBody#clear": {
      "id": "CompoundBody#clear",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Remove all children.",
      "short_description": "Remove all children.",
      "line": 142,
      "aliases": [],
      "children": [],
      "file": "src/bodies/compound.js",
      "name": "clear",
      "name_prefix": "CompoundBody#",
      "path": "CompoundBody.prototype.clear",
      "outFile": "compound.html#CompoundBody.prototype.clear"
    },
    "CompoundBody#refreshGeometry": {
      "id": "CompoundBody#refreshGeometry",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
      "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
      "line": 159,
      "aliases": [],
      "children": [],
      "file": "src/bodies/compound.js",
      "name": "refreshGeometry",
      "name_prefix": "CompoundBody#",
      "path": "CompoundBody.prototype.refreshGeometry",
      "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
    },
    "ConvexPolygonBody": {
      "id": "ConvexPolygonBody",
      "type": "class",
      "superclass": "Body",
      "description": "Physics.body('convex-polygon')\n\nBody for convex polygons. The position of the body is the centroid of the polygon.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.body('convex-polygon', {\n    // place the centroid of the polygon at (300, 200)\n    x: 300,\n    y: 200,\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
      "short_description": "Physics.body('convex-polygon')\n",
      "line": 33,
      "aliases": [],
      "children": [],
      "file": "src/bodies/convex-polygon.js",
      "subclasses": [],
      "name": "ConvexPolygonBody",
      "path": "ConvexPolygonBody",
      "outFile": "convex-polygon.html"
    },
    "PointBody": {
      "id": "PointBody",
      "type": "class",
      "superclass": "Body",
      "alias_of": "Body",
      "description": "Physics.body('point')\n\nThe point body represents a point.",
      "short_description": "Physics.body('point')\n",
      "line": 8,
      "aliases": [],
      "children": [],
      "file": "src/bodies/point.js",
      "subclasses": [],
      "name": "PointBody",
      "path": "PointBody",
      "outFile": "point.html"
    },
    "RectangleBody": {
      "id": "RectangleBody",
      "type": "class",
      "superclass": "Body",
      "description": "Physics.body('rectangle')\n\nBody for rectangles. The position of the body is the centroid of the rectangle.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rect = Physics.body('rectangle', {\n    // place the centroid of the rectangle at (300, 200)\n    x: 300,\n    y: 200,\n    width: 30,\n    height: 40\n});\n```",
      "short_description": "Physics.body('rectangle')\n",
      "line": 28,
      "aliases": [],
      "children": [],
      "file": "src/bodies/rectangle.js",
      "subclasses": [],
      "name": "RectangleBody",
      "path": "RectangleBody",
      "outFile": "rectangle.html"
    },
    "Physics.behavior": {
      "id": "Physics.behavior",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the behavior to create\n\n "
            },
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
            }
          ],
          "returns": [
            {
              "type": "Behavior"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " The name of the behavior to create\n\n "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
        }
      ],
      "related_to": "Physics.util.decorator",
      "description": "Factory function for creating Behaviors.\n\nVisit [the PhysicsJS wiki on Behaviors](https://github.com/wellcaffeinated/PhysicsJS/wiki/Behaviors)\nfor usage documentation.",
      "short_description": "Factory function for creating Behaviors.\n",
      "line": 24,
      "aliases": [],
      "children": [
        {
          "id": "Behavior",
          "type": "class",
          "belongs_to": "Physics.behavior",
          "description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
          "short_description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
          "line": 31,
          "aliases": [],
          "children": [
            {
              "id": "Behavior#applyTo",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                }
              ],
              "description": "Apply the behavior to a group of bodies.",
              "short_description": "Apply the behavior to a group of bodies.",
              "line": 66,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "applyTo",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.applyTo",
              "outFile": "behavior.html#Behavior.prototype.applyTo"
            },
            {
              "id": "Behavior#behave",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The pubsub `integrate:positions` event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The pubsub `integrate:positions` event data\n\n     "
                }
              ],
              "description": "Default method run on every world integration.\n\nYou _must_ extend this when creating a behavior,\nunless you extend the [[Behavior#connect]] and [[Behavior#disconnect]] methods.",
              "short_description": "Default method run on every world integration.\n",
              "line": 151,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "behave",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.behave",
              "outFile": "behavior.html#Behavior.prototype.behave"
            },
            {
              "id": "Behavior#connect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to connect to\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to connect to\n\n     "
                }
              ],
              "description": "Connect to a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
              "short_description": "Connect to a world.\n",
              "line": 119,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "connect",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.connect",
              "outFile": "behavior.html#Behavior.prototype.connect"
            },
            {
              "id": "Behavior#disconnect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to disconnect from\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to disconnect from\n\n     "
                }
              ],
              "description": "Disconnect from a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
              "short_description": "Disconnect from a world.\n",
              "line": 135,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "disconnect",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.disconnect",
              "outFile": "behavior.html#Behavior.prototype.disconnect"
            },
            {
              "id": "Behavior#getTargets",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " The array of bodies (by reference!) this behavior is applied to.\n\n     "
                }
              ],
              "description": "Get the array of bodies (by reference!) this behavior is applied to.",
              "short_description": "Get the array of bodies (by reference!) this behavior is applied to.",
              "line": 82,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "getTargets",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.getTargets",
              "outFile": "behavior.html#Behavior.prototype.getTargets"
            },
            {
              "id": "Behavior#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ],
              "internal": true,
              "description": "Initialization. Internal use.",
              "short_description": "Initialization. Internal use.",
              "line": 38,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "init",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.init",
              "outFile": "behavior.html#Behavior.prototype.init"
            },
            {
              "id": "Behavior#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ],
              "related_to": "Physics.util.options",
              "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
              "short_description": "Set options on this instance.\n",
              "line": 56,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "options",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.options",
              "outFile": "behavior.html#Behavior.prototype.options"
            },
            {
              "id": "Behavior#setWorld",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
              "short_description": "Set which world to apply to.\n",
              "line": 95,
              "aliases": [],
              "children": [],
              "file": "src/core/behavior.js",
              "name": "setWorld",
              "name_prefix": "Behavior#",
              "path": "Behavior.prototype.setWorld",
              "outFile": "behavior.html#Behavior.prototype.setWorld"
            },
            {
              "id": "AttractorBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('attractor')`.\n\nAttractor behavior attracts bodies to a specific point.\n\nAdditional options include:\n- pos: The position of the attraction point\n- strength: How strong the attraction is (default: `1`)\n- order: The power of the inverse distance (default: `2` because that is newtonian gravity... inverse square)\n- max: The maximum distance in which to apply the attraction (default: Infinity)\n- min: The minimum distance above which to apply the attraction (default: very small non-zero)",
              "short_description": "`Physics.behavior('attractor')`.\n",
              "line": 15,
              "aliases": [],
              "children": [
                {
                  "id": "AttractorBehavior#position",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "pos",
                          "optional": true,
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The position to set\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                        },
                        {
                          "type": "this",
                          "description": " For chaining\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "pos",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The position to set\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                    },
                    {
                      "type": "this",
                      "description": " For chaining\n\n     "
                    }
                  ],
                  "description": "Get or set the position of the attractor.",
                  "short_description": "Get or set the position of the attractor.",
                  "line": 56,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/attractor.js",
                  "name": "position",
                  "name_prefix": "AttractorBehavior#",
                  "path": "AttractorBehavior.prototype.position",
                  "outFile": "attractor.html#AttractorBehavior.prototype.position"
                }
              ],
              "file": "src/behaviors/attractor.js",
              "subclasses": [],
              "name": "AttractorBehavior",
              "path": "AttractorBehavior",
              "outFile": "attractor.html"
            },
            {
              "id": "BodyCollisionDetectionBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('body-collision-detection')`.\n\nDetect collisions of bodies.\n\nPublishes collision events to the world as a group of detected collisions per iteration.\n\nThe event data will have a `.collisions` property that is an array of collisions of the form:\n\n```javascript\n{\n    bodyA: // the first body\n    bodyB: // the second body\n    norm: // the normal vector (Vectorish)\n    mtv: // the minimum transit vector. (the direction and length needed to extract bodyB from bodyA)\n    pos: // the collision point relative to bodyA\n    overlap: // the amount bodyA overlaps bodyB\n}\n```\n\nAdditional options include:\n- check: channel to listen to for collision candidates (default: `collisions:candidates`). set to `true` to force check every pair of bodies in the world\n- channel: channel to publish events to (default: `collisions:detected`)",
              "short_description": "`Physics.behavior('body-collision-detection')`.\n",
              "line": 27,
              "aliases": [],
              "children": [
                {
                  "id": "BodyCollisionDetectionBehavior#check",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " The event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                  "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                  "line": 366,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/body-collision-detection.js",
                  "name": "check",
                  "name_prefix": "BodyCollisionDetectionBehavior#",
                  "path": "BodyCollisionDetectionBehavior.prototype.check",
                  "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
                },
                {
                  "id": "BodyCollisionDetectionBehavior#checkAll",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " The event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to check all pairs of objects in the list for collisions",
                  "short_description": "Event callback to check all pairs of objects in the list for collisions",
                  "line": 428,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/body-collision-detection.js",
                  "name": "checkAll",
                  "name_prefix": "BodyCollisionDetectionBehavior#",
                  "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
                  "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
                }
              ],
              "file": "src/behaviors/body-collision-detection.js",
              "subclasses": [],
              "name": "BodyCollisionDetectionBehavior",
              "path": "BodyCollisionDetectionBehavior",
              "outFile": "body-collision-detection.html"
            },
            {
              "id": "BodyImpulseResponseBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('body-impulse-response')`.\n\nResponds to collisions by applying impulses.\n\nAdditional options include:\n- check: channel to listen to for collisions (default: `collisions:detected`).\n- mtvThreshold: apply partial extraction of bodies if the minimum transit vector is less than this value ( default: `1`)\n  this will depend on your simulation characteristic length scale\n- bodyExtractDropoff: every body overlap correction (underneith mtvThreshold) will only extract by this fraction (0..1). Helps with stablizing contacts. (default: `0.5`)\n- forceWakeupAboveOverlapThreshold: force bodies to wake up if the overlap is above mtvThreshold ( default: `true` )",
              "short_description": "`Physics.behavior('body-impulse-response')`.\n",
              "line": 15,
              "aliases": [],
              "children": [
                {
                  "id": "BodyImpulseResponseBehavior#collideBodes",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Object"
                          ],
                          "description": " First Body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Object"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "normal",
                          "types": [
                            "Vector"
                          ],
                          "description": " Normal vector of the collision surface\n\n     "
                        },
                        {
                          "name": "point",
                          "types": [
                            "Vector"
                          ],
                          "description": " Contact point of the collision\n\n     "
                        },
                        {
                          "name": "mtrans",
                          "types": [
                            "Vector"
                          ],
                          "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                        },
                        {
                          "name": "contact",
                          "types": [
                            "Boolean"
                          ],
                          "description": " Are the bodies in resting contact relative to each other\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Object"
                      ],
                      "description": " First Body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Object"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "normal",
                      "types": [
                        "Vector"
                      ],
                      "description": " Normal vector of the collision surface\n\n     "
                    },
                    {
                      "name": "point",
                      "types": [
                        "Vector"
                      ],
                      "description": " Contact point of the collision\n\n     "
                    },
                    {
                      "name": "mtrans",
                      "types": [
                        "Vector"
                      ],
                      "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                    },
                    {
                      "name": "contact",
                      "types": [
                        "Boolean"
                      ],
                      "description": " Are the bodies in resting contact relative to each other\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                  "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                  "line": 88,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/body-impulse-response.js",
                  "name": "collideBodes",
                  "name_prefix": "BodyImpulseResponseBehavior#",
                  "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
                  "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
                },
                {
                  "id": "BodyImpulseResponseBehavior#respond",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to respond to collision data.",
                  "short_description": "Event callback to respond to collision data.",
                  "line": 281,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/body-impulse-response.js",
                  "name": "respond",
                  "name_prefix": "BodyImpulseResponseBehavior#",
                  "path": "BodyImpulseResponseBehavior.prototype.respond",
                  "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
                }
              ],
              "file": "src/behaviors/body-impulse-response.js",
              "subclasses": [],
              "name": "BodyImpulseResponseBehavior",
              "path": "BodyImpulseResponseBehavior",
              "outFile": "body-impulse-response.html"
            },
            {
              "id": "ConstantAccelerationBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('constant-acceleration')`.\n\nConstant acceleration behavior.\n\nBasically the \"gravity\" behavior. Used to give \"earth-like gravity\" to the world.\n\nAdditional options include:\n- acc: The acceleration vector (Vectorish). (default: `{ x: 0, y: 0.0004 }`)",
              "short_description": "`Physics.behavior('constant-acceleration')`.\n",
              "line": 13,
              "aliases": [],
              "children": [
                {
                  "id": "ConstantAccelerationBehavior#setAcceleration",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "acc",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The acceleration vector\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "acc",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The acceleration vector\n\n     "
                    }
                  ],
                  "description": "Set the acceleration of the behavior.",
                  "short_description": "Set the acceleration of the behavior.",
                  "line": 41,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/constant-acceleration.js",
                  "name": "setAcceleration",
                  "name_prefix": "ConstantAccelerationBehavior#",
                  "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
                  "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
                }
              ],
              "file": "src/behaviors/constant-acceleration.js",
              "subclasses": [],
              "name": "ConstantAccelerationBehavior",
              "path": "ConstantAccelerationBehavior",
              "outFile": "constant-acceleration.html"
            },
            {
              "id": "EdgeCollisionDetectionBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('edge-collision-detection')`.\n\nUsed to detect collisions with the boundaries of an AABB.\n\nAdditional options include:\n- aabb: The [[Physics.aabb]] bounds to use as the constraining boundary\n- restitution: The restitution of the boundary walls (default: `0.99`)\n- cof: The coefficient of friction of the boundary walls (default: `1`)\n- channel: The channel to publish collisions to. (default: 'collisions:detected')",
              "short_description": "`Physics.behavior('edge-collision-detection')`.\n",
              "line": 14,
              "aliases": [],
              "children": [
                {
                  "id": "EdgeCollisionDetectionBehavior#checkAll",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to check all bodies for collisions with the edge",
                  "short_description": "Event callback to check all bodies for collisions with the edge",
                  "line": 227,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/edge-collision-detection.js",
                  "name": "checkAll",
                  "name_prefix": "EdgeCollisionDetectionBehavior#",
                  "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
                  "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
                },
                {
                  "id": "EdgeCollisionDetectionBehavior#setAABB",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "aabb",
                          "types": [
                            "Physics.aabb"
                          ],
                          "description": " The aabb to use as the boundary\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "aabb",
                      "types": [
                        "Physics.aabb"
                      ],
                      "description": " The aabb to use as the boundary\n\n     "
                    }
                  ],
                  "description": "Set the boundaries of the edge.",
                  "short_description": "Set the boundaries of the edge.",
                  "line": 189,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/edge-collision-detection.js",
                  "name": "setAABB",
                  "name_prefix": "EdgeCollisionDetectionBehavior#",
                  "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
                  "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
                }
              ],
              "file": "src/behaviors/edge-collision-detection.js",
              "subclasses": [],
              "name": "EdgeCollisionDetectionBehavior",
              "path": "EdgeCollisionDetectionBehavior",
              "outFile": "edge-collision-detection.html"
            },
            {
              "id": "InteractiveBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('interactive')`.\n\nUser interaction helper.\n\nUsed to get mouse/touch events and add grab interactions.\n\nAdditional options include:\n- el: The element of the renderer. What you input as the `el` for the renderer.\n- moveThrottle: The min time between move events (default: `10`).\n- minVel: The minimum velocity clamp [[Vectorish]] (default: { x: -5, y: -5 }) to restrict velocity a user can give to a body\n- maxVel: The maximum velocity clamp [[Vectorish]] (default: { x: 5, y: 5 }) to restrict velocity a user can give to a body\n\nThe behavior also triggers the following events on the world:\n```javascript\n// a body has been grabbed\nworld.on('interact:grab', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed\n});\n// no body was grabbed, but the renderer area was clicked, or touched\nworld.on('interact:poke', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n});\n// when a mouse or pointer moves\nworld.on('interact:move', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the grabbed body that was moved (if applicable)\n});\n// when the viewport is released (mouseup, touchend)\nworld.on('interact:release', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed (if applicable)\n});\n```\n\nThe behavior also sets body.isGrabbed = true for any grabbed bodies while they are grabbed.",
              "short_description": "`Physics.behavior('interactive')`.\n",
              "line": 45,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/interactive.js",
              "subclasses": [],
              "name": "InteractiveBehavior",
              "path": "InteractiveBehavior",
              "outFile": "interactive.html"
            },
            {
              "id": "NewtonianBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('newtonian')`.\n\nNewtonian attraction between bodies (inverse square law).\n\nAdditional options include:\n- strength: The strength of the interaction between bodies. (default: `1`)\n- max: The maximum distance between bodies at which to apply the behavior. (default: `false`... infinite)\n- min: The minimum distance between bodies at which to apply the behavior. (default: `false`... autocalculate)",
              "short_description": "`Physics.behavior('newtonian')`.\n",
              "line": 13,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/newtonian.js",
              "subclasses": [],
              "name": "NewtonianBehavior",
              "path": "NewtonianBehavior",
              "outFile": "newtonian.html"
            },
            {
              "id": "SweepPruneBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('sweep-prune')`.\n\nSweep and Prune implementation for broad phase collision detection.\n\nThis massively improves the speed of collision detection. It's set up to always be used with [[BodyCollisionDetection]], and [[BodyImpulseResponse]].\n\nAdditional options include:\n- channel: The channel to publish collision candidates to. (default: `collisions:candidates`)",
              "short_description": "`Physics.behavior('sweep-prune')`.\n",
              "line": 13,
              "aliases": [],
              "children": [
                {
                  "id": "SweepPruneBehavior#broadPhase",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Array"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array",
                      "description": " The candidate data of overlapping aabbs\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Execute the broad phase and get candidate collisions",
                  "short_description": "Execute the broad phase and get candidate collisions",
                  "line": 95,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "broadPhase",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.broadPhase",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
                },
                {
                  "id": "SweepPruneBehavior#checkOverlaps",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Array"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array",
                      "description": " List of candidate collisions\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Check each axis for overlaps of bodies AABBs",
                  "short_description": "Check each axis for overlaps of bodies AABBs",
                  "line": 257,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "checkOverlaps",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.checkOverlaps",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
                },
                {
                  "id": "SweepPruneBehavior#clear",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": []
                    }
                  ],
                  "description": "Refresh tracking data",
                  "short_description": "Refresh tracking data",
                  "line": 52,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "clear",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.clear",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
                },
                {
                  "id": "SweepPruneBehavior#getPair",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "tr1",
                          "types": [
                            "Object"
                          ],
                          "description": " First tracker\n\n     "
                        },
                        {
                          "name": "tr2",
                          "types": [
                            "Object"
                          ],
                          "description": " Second tracker\n\n     "
                        },
                        {
                          "name": "doCreate",
                          "types": [
                            "Boolean"
                          ],
                          "description": " Create if not found\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " Pair object or null if not found\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "tr1",
                      "types": [
                        "Object"
                      ],
                      "description": " First tracker\n\n     "
                    },
                    {
                      "name": "tr2",
                      "types": [
                        "Object"
                      ],
                      "description": " Second tracker\n\n     "
                    },
                    {
                      "name": "doCreate",
                      "types": [
                        "Boolean"
                      ],
                      "description": " Create if not found\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Pair object or null if not found\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Get a pair object for the tracker objects",
                  "short_description": "Get a pair object for the tracker objects",
                  "line": 181,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "getPair",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.getPair",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
                },
                {
                  "id": "SweepPruneBehavior#sortIntervalLists",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": []
                    }
                  ],
                  "internal": true,
                  "description": "Simple insertion sort for each axis",
                  "short_description": "Simple insertion sort for each axis",
                  "line": 112,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "sortIntervalLists",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.sortIntervalLists",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
                },
                {
                  "id": "SweepPruneBehavior#sweep",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to sweep and publish event if any candidate collisions are found",
                  "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
                  "line": 487,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "sweep",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.sweep",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
                },
                {
                  "id": "SweepPruneBehavior#trackBody",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to add body to list of those tracked by sweep and prune",
                  "short_description": "Event callback to add body to list of those tracked by sweep and prune",
                  "line": 393,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "trackBody",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.trackBody",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
                },
                {
                  "id": "SweepPruneBehavior#untrackBody",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Event callback to remove body from list of those tracked",
                  "short_description": "Event callback to remove body from list of those tracked",
                  "line": 432,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "untrackBody",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.untrackBody",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
                },
                {
                  "id": "SweepPruneBehavior#updateIntervals",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": []
                    }
                  ],
                  "internal": true,
                  "description": "Update position intervals on each axis",
                  "short_description": "Update position intervals on each axis",
                  "line": 364,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/sweep-prune.js",
                  "name": "updateIntervals",
                  "name_prefix": "SweepPruneBehavior#",
                  "path": "SweepPruneBehavior.prototype.updateIntervals",
                  "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
                }
              ],
              "file": "src/behaviors/sweep-prune.js",
              "subclasses": [],
              "name": "SweepPruneBehavior",
              "path": "SweepPruneBehavior",
              "outFile": "sweep-prune.html"
            },
            {
              "id": "VerletConstraintsBehavior",
              "type": "class",
              "superclass": "Behavior",
              "description": "`Physics.behavior('verlet-constraints')`.\n\nVerlet constraints manager.\n\nHandles distance constraints, and angle constraints\n\nAdditional options include:\n- iterations: The number of iterations to take to relax the constraints. (default: `2`)",
              "short_description": "`Physics.behavior('verlet-constraints')`.\n",
              "line": 13,
              "aliases": [],
              "children": [
                {
                  "id": "VerletConstraintsBehavior#angleConstraint",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Body"
                          ],
                          "description": " First body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Body"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "bodyC",
                          "types": [
                            "Body"
                          ],
                          "description": " Third body\n\n     "
                        },
                        {
                          "name": "stiffness",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                        },
                        {
                          "name": "targetAngle",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The constraint data object\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Body"
                      ],
                      "description": " First body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Body"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "bodyC",
                      "types": [
                        "Body"
                      ],
                      "description": " Third body\n\n     "
                    },
                    {
                      "name": "stiffness",
                      "types": [
                        "Number"
                      ],
                      "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                    },
                    {
                      "name": "targetAngle",
                      "types": [
                        "Number"
                      ],
                      "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The constraint data object\n\n     "
                    }
                  ],
                  "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
                  "short_description": "Constrain three bodies to a target relative angle\n",
                  "line": 129,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "angleConstraint",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.angleConstraint",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
                },
                {
                  "id": "VerletConstraintsBehavior#distanceConstraint",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Body"
                          ],
                          "description": " First body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Body"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "stiffness",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                        },
                        {
                          "name": "targetLength",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " Target length. defaults to current distance between the bodies\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The constraint data object\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Body"
                      ],
                      "description": " First body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Body"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "stiffness",
                      "types": [
                        "Number"
                      ],
                      "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                    },
                    {
                      "name": "targetLength",
                      "types": [
                        "Number"
                      ],
                      "description": " Target length. defaults to current distance between the bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The constraint data object\n\n     "
                    }
                  ],
                  "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
                  "short_description": "Constrain two bodies to a target relative distance.\n",
                  "line": 86,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "distanceConstraint",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
                },
                {
                  "id": "VerletConstraintsBehavior#drop",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Remove all constraints",
                  "short_description": "Remove all constraints",
                  "line": 60,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "drop",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.drop",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
                },
                {
                  "id": "VerletConstraintsBehavior#getConstraints",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Object"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The object containing copied arrays of the constraints\n\n     "
                    }
                  ],
                  "description": "Get all constraints.",
                  "short_description": "Get all constraints.",
                  "line": 419,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "getConstraints",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.getConstraints",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
                },
                {
                  "id": "VerletConstraintsBehavior#remove",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "constraintData",
                          "types": [
                            "Object"
                          ],
                          "description": " The constraint data returned when creating a constraint\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "constraintId",
                          "types": [
                            "String"
                          ],
                          "description": " The constraint id\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "constraintData",
                      "types": [
                        "Object"
                      ],
                      "description": " The constraint data returned when creating a constraint\n\n     "
                    },
                    {
                      "name": "constraintId",
                      "types": [
                        "String"
                      ],
                      "description": " The constraint id\n\n     "
                    }
                  ],
                  "description": "Remove a constraint",
                  "short_description": "Remove a constraint",
                  "line": 160,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "remove",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.remove",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
                },
                {
                  "id": "VerletConstraintsBehavior#resolve",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": []
                    }
                  ],
                  "internal": true,
                  "description": "Resolve all constraints.",
                  "short_description": "Resolve all constraints.",
                  "line": 399,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "resolve",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.resolve",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
                },
                {
                  "id": "VerletConstraintsBehavior#resolveAngleConstraints",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "coef",
                          "types": [
                            "Number"
                          ],
                          "description": " Coefficient for this resolution phase\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "coef",
                      "types": [
                        "Number"
                      ],
                      "description": " Coefficient for this resolution phase\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Resolve angle constraints.",
                  "short_description": "Resolve angle constraints.",
                  "line": 205,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "resolveAngleConstraints",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
                },
                {
                  "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "coef",
                          "types": [
                            "Number"
                          ],
                          "description": " Coefficient for this resolution phase\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "coef",
                      "types": [
                        "Number"
                      ],
                      "description": " Coefficient for this resolution phase\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Resolve distance constraints.",
                  "short_description": "Resolve distance constraints.",
                  "line": 330,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "resolveDistanceConstraints",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
                },
                {
                  "id": "VerletConstraintsBehavior#shuffleConstraints",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": []
                    }
                  ],
                  "internal": true,
                  "description": "Mix up the constraints.",
                  "short_description": "Mix up the constraints.",
                  "line": 388,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/verlet-constraints.js",
                  "name": "shuffleConstraints",
                  "name_prefix": "VerletConstraintsBehavior#",
                  "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
                  "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
                }
              ],
              "file": "src/behaviors/verlet-constraints.js",
              "subclasses": [],
              "name": "VerletConstraintsBehavior",
              "path": "VerletConstraintsBehavior",
              "outFile": "verlet-constraints.html"
            }
          ],
          "file": "src/core/behavior.js",
          "subclasses": [
            "AttractorBehavior",
            "BodyCollisionDetectionBehavior",
            "BodyImpulseResponseBehavior",
            "ConstantAccelerationBehavior",
            "EdgeCollisionDetectionBehavior",
            "InteractiveBehavior",
            "NewtonianBehavior",
            "SweepPruneBehavior",
            "VerletConstraintsBehavior"
          ],
          "name": "Behavior",
          "path": "Behavior",
          "outFile": "behavior.html"
        }
      ],
      "file": "src/core/behavior.js",
      "name": "behavior",
      "name_prefix": "Physics.",
      "path": "Physics.behavior",
      "outFile": "behavior.html#Physics.behavior"
    },
    "Behavior": {
      "id": "Behavior",
      "type": "class",
      "belongs_to": "Physics.behavior",
      "description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
      "short_description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
      "line": 31,
      "aliases": [],
      "children": [
        {
          "id": "Behavior#applyTo",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
            }
          ],
          "description": "Apply the behavior to a group of bodies.",
          "short_description": "Apply the behavior to a group of bodies.",
          "line": 66,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "applyTo",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.applyTo",
          "outFile": "behavior.html#Behavior.prototype.applyTo"
        },
        {
          "id": "Behavior#behave",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The pubsub `integrate:positions` event data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The pubsub `integrate:positions` event data\n\n     "
            }
          ],
          "description": "Default method run on every world integration.\n\nYou _must_ extend this when creating a behavior,\nunless you extend the [[Behavior#connect]] and [[Behavior#disconnect]] methods.",
          "short_description": "Default method run on every world integration.\n",
          "line": 151,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "behave",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.behave",
          "outFile": "behavior.html#Behavior.prototype.behave"
        },
        {
          "id": "Behavior#connect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to connect to\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to connect to\n\n     "
            }
          ],
          "description": "Connect to a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
          "short_description": "Connect to a world.\n",
          "line": 119,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "connect",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.connect",
          "outFile": "behavior.html#Behavior.prototype.connect"
        },
        {
          "id": "Behavior#disconnect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to disconnect from\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to disconnect from\n\n     "
            }
          ],
          "description": "Disconnect from a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
          "short_description": "Disconnect from a world.\n",
          "line": 135,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "disconnect",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.disconnect",
          "outFile": "behavior.html#Behavior.prototype.disconnect"
        },
        {
          "id": "Behavior#getTargets",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " The array of bodies (by reference!) this behavior is applied to.\n\n     "
            }
          ],
          "description": "Get the array of bodies (by reference!) this behavior is applied to.",
          "short_description": "Get the array of bodies (by reference!) this behavior is applied to.",
          "line": 82,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "getTargets",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.getTargets",
          "outFile": "behavior.html#Behavior.prototype.getTargets"
        },
        {
          "id": "Behavior#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ],
          "internal": true,
          "description": "Initialization. Internal use.",
          "short_description": "Initialization. Internal use.",
          "line": 38,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "init",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.init",
          "outFile": "behavior.html#Behavior.prototype.init"
        },
        {
          "id": "Behavior#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ],
          "related_to": "Physics.util.options",
          "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
          "short_description": "Set options on this instance.\n",
          "line": 56,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "options",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.options",
          "outFile": "behavior.html#Behavior.prototype.options"
        },
        {
          "id": "Behavior#setWorld",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
          "short_description": "Set which world to apply to.\n",
          "line": 95,
          "aliases": [],
          "children": [],
          "file": "src/core/behavior.js",
          "name": "setWorld",
          "name_prefix": "Behavior#",
          "path": "Behavior.prototype.setWorld",
          "outFile": "behavior.html#Behavior.prototype.setWorld"
        },
        {
          "id": "AttractorBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('attractor')`.\n\nAttractor behavior attracts bodies to a specific point.\n\nAdditional options include:\n- pos: The position of the attraction point\n- strength: How strong the attraction is (default: `1`)\n- order: The power of the inverse distance (default: `2` because that is newtonian gravity... inverse square)\n- max: The maximum distance in which to apply the attraction (default: Infinity)\n- min: The minimum distance above which to apply the attraction (default: very small non-zero)",
          "short_description": "`Physics.behavior('attractor')`.\n",
          "line": 15,
          "aliases": [],
          "children": [
            {
              "id": "AttractorBehavior#position",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "pos",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The position to set\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                    },
                    {
                      "type": "this",
                      "description": " For chaining\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "pos",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The position to set\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                },
                {
                  "type": "this",
                  "description": " For chaining\n\n     "
                }
              ],
              "description": "Get or set the position of the attractor.",
              "short_description": "Get or set the position of the attractor.",
              "line": 56,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/attractor.js",
              "name": "position",
              "name_prefix": "AttractorBehavior#",
              "path": "AttractorBehavior.prototype.position",
              "outFile": "attractor.html#AttractorBehavior.prototype.position"
            }
          ],
          "file": "src/behaviors/attractor.js",
          "subclasses": [],
          "name": "AttractorBehavior",
          "path": "AttractorBehavior",
          "outFile": "attractor.html"
        },
        {
          "id": "BodyCollisionDetectionBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('body-collision-detection')`.\n\nDetect collisions of bodies.\n\nPublishes collision events to the world as a group of detected collisions per iteration.\n\nThe event data will have a `.collisions` property that is an array of collisions of the form:\n\n```javascript\n{\n    bodyA: // the first body\n    bodyB: // the second body\n    norm: // the normal vector (Vectorish)\n    mtv: // the minimum transit vector. (the direction and length needed to extract bodyB from bodyA)\n    pos: // the collision point relative to bodyA\n    overlap: // the amount bodyA overlaps bodyB\n}\n```\n\nAdditional options include:\n- check: channel to listen to for collision candidates (default: `collisions:candidates`). set to `true` to force check every pair of bodies in the world\n- channel: channel to publish events to (default: `collisions:detected`)",
          "short_description": "`Physics.behavior('body-collision-detection')`.\n",
          "line": 27,
          "aliases": [],
          "children": [
            {
              "id": "BodyCollisionDetectionBehavior#check",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
              "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
              "line": 366,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/body-collision-detection.js",
              "name": "check",
              "name_prefix": "BodyCollisionDetectionBehavior#",
              "path": "BodyCollisionDetectionBehavior.prototype.check",
              "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
            },
            {
              "id": "BodyCollisionDetectionBehavior#checkAll",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " The event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to check all pairs of objects in the list for collisions",
              "short_description": "Event callback to check all pairs of objects in the list for collisions",
              "line": 428,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/body-collision-detection.js",
              "name": "checkAll",
              "name_prefix": "BodyCollisionDetectionBehavior#",
              "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
              "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
            }
          ],
          "file": "src/behaviors/body-collision-detection.js",
          "subclasses": [],
          "name": "BodyCollisionDetectionBehavior",
          "path": "BodyCollisionDetectionBehavior",
          "outFile": "body-collision-detection.html"
        },
        {
          "id": "BodyImpulseResponseBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('body-impulse-response')`.\n\nResponds to collisions by applying impulses.\n\nAdditional options include:\n- check: channel to listen to for collisions (default: `collisions:detected`).\n- mtvThreshold: apply partial extraction of bodies if the minimum transit vector is less than this value ( default: `1`)\n  this will depend on your simulation characteristic length scale\n- bodyExtractDropoff: every body overlap correction (underneith mtvThreshold) will only extract by this fraction (0..1). Helps with stablizing contacts. (default: `0.5`)\n- forceWakeupAboveOverlapThreshold: force bodies to wake up if the overlap is above mtvThreshold ( default: `true` )",
          "short_description": "`Physics.behavior('body-impulse-response')`.\n",
          "line": 15,
          "aliases": [],
          "children": [
            {
              "id": "BodyImpulseResponseBehavior#collideBodes",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Object"
                      ],
                      "description": " First Body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Object"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "normal",
                      "types": [
                        "Vector"
                      ],
                      "description": " Normal vector of the collision surface\n\n     "
                    },
                    {
                      "name": "point",
                      "types": [
                        "Vector"
                      ],
                      "description": " Contact point of the collision\n\n     "
                    },
                    {
                      "name": "mtrans",
                      "types": [
                        "Vector"
                      ],
                      "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                    },
                    {
                      "name": "contact",
                      "types": [
                        "Boolean"
                      ],
                      "description": " Are the bodies in resting contact relative to each other\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Object"
                  ],
                  "description": " First Body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Object"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "normal",
                  "types": [
                    "Vector"
                  ],
                  "description": " Normal vector of the collision surface\n\n     "
                },
                {
                  "name": "point",
                  "types": [
                    "Vector"
                  ],
                  "description": " Contact point of the collision\n\n     "
                },
                {
                  "name": "mtrans",
                  "types": [
                    "Vector"
                  ],
                  "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                },
                {
                  "name": "contact",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Are the bodies in resting contact relative to each other\n\n     "
                }
              ],
              "internal": true,
              "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
              "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
              "line": 88,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/body-impulse-response.js",
              "name": "collideBodes",
              "name_prefix": "BodyImpulseResponseBehavior#",
              "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
              "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
            },
            {
              "id": "BodyImpulseResponseBehavior#respond",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to respond to collision data.",
              "short_description": "Event callback to respond to collision data.",
              "line": 281,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/body-impulse-response.js",
              "name": "respond",
              "name_prefix": "BodyImpulseResponseBehavior#",
              "path": "BodyImpulseResponseBehavior.prototype.respond",
              "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
            }
          ],
          "file": "src/behaviors/body-impulse-response.js",
          "subclasses": [],
          "name": "BodyImpulseResponseBehavior",
          "path": "BodyImpulseResponseBehavior",
          "outFile": "body-impulse-response.html"
        },
        {
          "id": "ConstantAccelerationBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('constant-acceleration')`.\n\nConstant acceleration behavior.\n\nBasically the \"gravity\" behavior. Used to give \"earth-like gravity\" to the world.\n\nAdditional options include:\n- acc: The acceleration vector (Vectorish). (default: `{ x: 0, y: 0.0004 }`)",
          "short_description": "`Physics.behavior('constant-acceleration')`.\n",
          "line": 13,
          "aliases": [],
          "children": [
            {
              "id": "ConstantAccelerationBehavior#setAcceleration",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "acc",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The acceleration vector\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "acc",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The acceleration vector\n\n     "
                }
              ],
              "description": "Set the acceleration of the behavior.",
              "short_description": "Set the acceleration of the behavior.",
              "line": 41,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/constant-acceleration.js",
              "name": "setAcceleration",
              "name_prefix": "ConstantAccelerationBehavior#",
              "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
              "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
            }
          ],
          "file": "src/behaviors/constant-acceleration.js",
          "subclasses": [],
          "name": "ConstantAccelerationBehavior",
          "path": "ConstantAccelerationBehavior",
          "outFile": "constant-acceleration.html"
        },
        {
          "id": "EdgeCollisionDetectionBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('edge-collision-detection')`.\n\nUsed to detect collisions with the boundaries of an AABB.\n\nAdditional options include:\n- aabb: The [[Physics.aabb]] bounds to use as the constraining boundary\n- restitution: The restitution of the boundary walls (default: `0.99`)\n- cof: The coefficient of friction of the boundary walls (default: `1`)\n- channel: The channel to publish collisions to. (default: 'collisions:detected')",
          "short_description": "`Physics.behavior('edge-collision-detection')`.\n",
          "line": 14,
          "aliases": [],
          "children": [
            {
              "id": "EdgeCollisionDetectionBehavior#checkAll",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to check all bodies for collisions with the edge",
              "short_description": "Event callback to check all bodies for collisions with the edge",
              "line": 227,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/edge-collision-detection.js",
              "name": "checkAll",
              "name_prefix": "EdgeCollisionDetectionBehavior#",
              "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
              "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
            },
            {
              "id": "EdgeCollisionDetectionBehavior#setAABB",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "aabb",
                      "types": [
                        "Physics.aabb"
                      ],
                      "description": " The aabb to use as the boundary\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Physics.aabb"
                  ],
                  "description": " The aabb to use as the boundary\n\n     "
                }
              ],
              "description": "Set the boundaries of the edge.",
              "short_description": "Set the boundaries of the edge.",
              "line": 189,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/edge-collision-detection.js",
              "name": "setAABB",
              "name_prefix": "EdgeCollisionDetectionBehavior#",
              "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
              "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
            }
          ],
          "file": "src/behaviors/edge-collision-detection.js",
          "subclasses": [],
          "name": "EdgeCollisionDetectionBehavior",
          "path": "EdgeCollisionDetectionBehavior",
          "outFile": "edge-collision-detection.html"
        },
        {
          "id": "InteractiveBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('interactive')`.\n\nUser interaction helper.\n\nUsed to get mouse/touch events and add grab interactions.\n\nAdditional options include:\n- el: The element of the renderer. What you input as the `el` for the renderer.\n- moveThrottle: The min time between move events (default: `10`).\n- minVel: The minimum velocity clamp [[Vectorish]] (default: { x: -5, y: -5 }) to restrict velocity a user can give to a body\n- maxVel: The maximum velocity clamp [[Vectorish]] (default: { x: 5, y: 5 }) to restrict velocity a user can give to a body\n\nThe behavior also triggers the following events on the world:\n```javascript\n// a body has been grabbed\nworld.on('interact:grab', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed\n});\n// no body was grabbed, but the renderer area was clicked, or touched\nworld.on('interact:poke', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n});\n// when a mouse or pointer moves\nworld.on('interact:move', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the grabbed body that was moved (if applicable)\n});\n// when the viewport is released (mouseup, touchend)\nworld.on('interact:release', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed (if applicable)\n});\n```\n\nThe behavior also sets body.isGrabbed = true for any grabbed bodies while they are grabbed.",
          "short_description": "`Physics.behavior('interactive')`.\n",
          "line": 45,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/interactive.js",
          "subclasses": [],
          "name": "InteractiveBehavior",
          "path": "InteractiveBehavior",
          "outFile": "interactive.html"
        },
        {
          "id": "NewtonianBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('newtonian')`.\n\nNewtonian attraction between bodies (inverse square law).\n\nAdditional options include:\n- strength: The strength of the interaction between bodies. (default: `1`)\n- max: The maximum distance between bodies at which to apply the behavior. (default: `false`... infinite)\n- min: The minimum distance between bodies at which to apply the behavior. (default: `false`... autocalculate)",
          "short_description": "`Physics.behavior('newtonian')`.\n",
          "line": 13,
          "aliases": [],
          "children": [],
          "file": "src/behaviors/newtonian.js",
          "subclasses": [],
          "name": "NewtonianBehavior",
          "path": "NewtonianBehavior",
          "outFile": "newtonian.html"
        },
        {
          "id": "SweepPruneBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('sweep-prune')`.\n\nSweep and Prune implementation for broad phase collision detection.\n\nThis massively improves the speed of collision detection. It's set up to always be used with [[BodyCollisionDetection]], and [[BodyImpulseResponse]].\n\nAdditional options include:\n- channel: The channel to publish collision candidates to. (default: `collisions:candidates`)",
          "short_description": "`Physics.behavior('sweep-prune')`.\n",
          "line": 13,
          "aliases": [],
          "children": [
            {
              "id": "SweepPruneBehavior#broadPhase",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " The candidate data of overlapping aabbs\n\n     "
                }
              ],
              "internal": true,
              "description": "Execute the broad phase and get candidate collisions",
              "short_description": "Execute the broad phase and get candidate collisions",
              "line": 95,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "broadPhase",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.broadPhase",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
            },
            {
              "id": "SweepPruneBehavior#checkOverlaps",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " List of candidate collisions\n\n     "
                }
              ],
              "internal": true,
              "description": "Check each axis for overlaps of bodies AABBs",
              "short_description": "Check each axis for overlaps of bodies AABBs",
              "line": 257,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "checkOverlaps",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.checkOverlaps",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
            },
            {
              "id": "SweepPruneBehavior#clear",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "description": "Refresh tracking data",
              "short_description": "Refresh tracking data",
              "line": 52,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "clear",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.clear",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
            },
            {
              "id": "SweepPruneBehavior#getPair",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "tr1",
                      "types": [
                        "Object"
                      ],
                      "description": " First tracker\n\n     "
                    },
                    {
                      "name": "tr2",
                      "types": [
                        "Object"
                      ],
                      "description": " Second tracker\n\n     "
                    },
                    {
                      "name": "doCreate",
                      "types": [
                        "Boolean"
                      ],
                      "description": " Create if not found\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Pair object or null if not found\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "tr1",
                  "types": [
                    "Object"
                  ],
                  "description": " First tracker\n\n     "
                },
                {
                  "name": "tr2",
                  "types": [
                    "Object"
                  ],
                  "description": " Second tracker\n\n     "
                },
                {
                  "name": "doCreate",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Create if not found\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Pair object or null if not found\n\n     "
                }
              ],
              "internal": true,
              "description": "Get a pair object for the tracker objects",
              "short_description": "Get a pair object for the tracker objects",
              "line": 181,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "getPair",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.getPair",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
            },
            {
              "id": "SweepPruneBehavior#sortIntervalLists",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "internal": true,
              "description": "Simple insertion sort for each axis",
              "short_description": "Simple insertion sort for each axis",
              "line": 112,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "sortIntervalLists",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.sortIntervalLists",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
            },
            {
              "id": "SweepPruneBehavior#sweep",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to sweep and publish event if any candidate collisions are found",
              "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
              "line": 487,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "sweep",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.sweep",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
            },
            {
              "id": "SweepPruneBehavior#trackBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to add body to list of those tracked by sweep and prune",
              "short_description": "Event callback to add body to list of those tracked by sweep and prune",
              "line": 393,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "trackBody",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.trackBody",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
            },
            {
              "id": "SweepPruneBehavior#untrackBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data\n\n     "
                }
              ],
              "internal": true,
              "description": "Event callback to remove body from list of those tracked",
              "short_description": "Event callback to remove body from list of those tracked",
              "line": 432,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "untrackBody",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.untrackBody",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
            },
            {
              "id": "SweepPruneBehavior#updateIntervals",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "internal": true,
              "description": "Update position intervals on each axis",
              "short_description": "Update position intervals on each axis",
              "line": 364,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/sweep-prune.js",
              "name": "updateIntervals",
              "name_prefix": "SweepPruneBehavior#",
              "path": "SweepPruneBehavior.prototype.updateIntervals",
              "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
            }
          ],
          "file": "src/behaviors/sweep-prune.js",
          "subclasses": [],
          "name": "SweepPruneBehavior",
          "path": "SweepPruneBehavior",
          "outFile": "sweep-prune.html"
        },
        {
          "id": "VerletConstraintsBehavior",
          "type": "class",
          "superclass": "Behavior",
          "description": "`Physics.behavior('verlet-constraints')`.\n\nVerlet constraints manager.\n\nHandles distance constraints, and angle constraints\n\nAdditional options include:\n- iterations: The number of iterations to take to relax the constraints. (default: `2`)",
          "short_description": "`Physics.behavior('verlet-constraints')`.\n",
          "line": 13,
          "aliases": [],
          "children": [
            {
              "id": "VerletConstraintsBehavior#angleConstraint",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Body"
                      ],
                      "description": " First body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Body"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "bodyC",
                      "types": [
                        "Body"
                      ],
                      "description": " Third body\n\n     "
                    },
                    {
                      "name": "stiffness",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                    },
                    {
                      "name": "targetAngle",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The constraint data object\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Body"
                  ],
                  "description": " First body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Body"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "bodyC",
                  "types": [
                    "Body"
                  ],
                  "description": " Third body\n\n     "
                },
                {
                  "name": "stiffness",
                  "types": [
                    "Number"
                  ],
                  "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                },
                {
                  "name": "targetAngle",
                  "types": [
                    "Number"
                  ],
                  "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The constraint data object\n\n     "
                }
              ],
              "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
              "short_description": "Constrain three bodies to a target relative angle\n",
              "line": 129,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "angleConstraint",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.angleConstraint",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
            },
            {
              "id": "VerletConstraintsBehavior#distanceConstraint",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodyA",
                      "types": [
                        "Body"
                      ],
                      "description": " First body\n\n     "
                    },
                    {
                      "name": "bodyB",
                      "types": [
                        "Body"
                      ],
                      "description": " Second body\n\n     "
                    },
                    {
                      "name": "stiffness",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                    },
                    {
                      "name": "targetLength",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Target length. defaults to current distance between the bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The constraint data object\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodyA",
                  "types": [
                    "Body"
                  ],
                  "description": " First body\n\n     "
                },
                {
                  "name": "bodyB",
                  "types": [
                    "Body"
                  ],
                  "description": " Second body\n\n     "
                },
                {
                  "name": "stiffness",
                  "types": [
                    "Number"
                  ],
                  "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                },
                {
                  "name": "targetLength",
                  "types": [
                    "Number"
                  ],
                  "description": " Target length. defaults to current distance between the bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The constraint data object\n\n     "
                }
              ],
              "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
              "short_description": "Constrain two bodies to a target relative distance.\n",
              "line": 86,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "distanceConstraint",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
            },
            {
              "id": "VerletConstraintsBehavior#drop",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Remove all constraints",
              "short_description": "Remove all constraints",
              "line": 60,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "drop",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.drop",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
            },
            {
              "id": "VerletConstraintsBehavior#getConstraints",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The object containing copied arrays of the constraints\n\n     "
                }
              ],
              "description": "Get all constraints.",
              "short_description": "Get all constraints.",
              "line": 419,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "getConstraints",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.getConstraints",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
            },
            {
              "id": "VerletConstraintsBehavior#remove",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "constraintData",
                      "types": [
                        "Object"
                      ],
                      "description": " The constraint data returned when creating a constraint\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "constraintId",
                      "types": [
                        "String"
                      ],
                      "description": " The constraint id\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "constraintData",
                  "types": [
                    "Object"
                  ],
                  "description": " The constraint data returned when creating a constraint\n\n     "
                },
                {
                  "name": "constraintId",
                  "types": [
                    "String"
                  ],
                  "description": " The constraint id\n\n     "
                }
              ],
              "description": "Remove a constraint",
              "short_description": "Remove a constraint",
              "line": 160,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "remove",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.remove",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
            },
            {
              "id": "VerletConstraintsBehavior#resolve",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "internal": true,
              "description": "Resolve all constraints.",
              "short_description": "Resolve all constraints.",
              "line": 399,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "resolve",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.resolve",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
            },
            {
              "id": "VerletConstraintsBehavior#resolveAngleConstraints",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "coef",
                      "types": [
                        "Number"
                      ],
                      "description": " Coefficient for this resolution phase\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "coef",
                  "types": [
                    "Number"
                  ],
                  "description": " Coefficient for this resolution phase\n\n     "
                }
              ],
              "internal": true,
              "description": "Resolve angle constraints.",
              "short_description": "Resolve angle constraints.",
              "line": 205,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "resolveAngleConstraints",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
            },
            {
              "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "coef",
                      "types": [
                        "Number"
                      ],
                      "description": " Coefficient for this resolution phase\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "coef",
                  "types": [
                    "Number"
                  ],
                  "description": " Coefficient for this resolution phase\n\n     "
                }
              ],
              "internal": true,
              "description": "Resolve distance constraints.",
              "short_description": "Resolve distance constraints.",
              "line": 330,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "resolveDistanceConstraints",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
            },
            {
              "id": "VerletConstraintsBehavior#shuffleConstraints",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "internal": true,
              "description": "Mix up the constraints.",
              "short_description": "Mix up the constraints.",
              "line": 388,
              "aliases": [],
              "children": [],
              "file": "src/behaviors/verlet-constraints.js",
              "name": "shuffleConstraints",
              "name_prefix": "VerletConstraintsBehavior#",
              "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
              "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
            }
          ],
          "file": "src/behaviors/verlet-constraints.js",
          "subclasses": [],
          "name": "VerletConstraintsBehavior",
          "path": "VerletConstraintsBehavior",
          "outFile": "verlet-constraints.html"
        }
      ],
      "file": "src/core/behavior.js",
      "subclasses": [
        "AttractorBehavior",
        "BodyCollisionDetectionBehavior",
        "BodyImpulseResponseBehavior",
        "ConstantAccelerationBehavior",
        "EdgeCollisionDetectionBehavior",
        "InteractiveBehavior",
        "NewtonianBehavior",
        "SweepPruneBehavior",
        "VerletConstraintsBehavior"
      ],
      "name": "Behavior",
      "path": "Behavior",
      "outFile": "behavior.html"
    },
    "Behavior#init": {
      "id": "Behavior#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration options passed by the factory\n\n     "
        }
      ],
      "internal": true,
      "description": "Initialization. Internal use.",
      "short_description": "Initialization. Internal use.",
      "line": 38,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "init",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.init",
      "outFile": "behavior.html#Behavior.prototype.init"
    },
    "Behavior#options": {
      "id": "Behavior#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The options to set as an object\n\n         "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The options\n\n         "
        }
      ],
      "related_to": "Physics.util.options",
      "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
      "short_description": "Set options on this instance.\n",
      "line": 56,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "options",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.options",
      "outFile": "behavior.html#Behavior.prototype.options"
    },
    "Behavior#applyTo": {
      "id": "Behavior#applyTo",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
        }
      ],
      "description": "Apply the behavior to a group of bodies.",
      "short_description": "Apply the behavior to a group of bodies.",
      "line": 66,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "applyTo",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.applyTo",
      "outFile": "behavior.html#Behavior.prototype.applyTo"
    },
    "Behavior#getTargets": {
      "id": "Behavior#getTargets",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " The array of bodies (by reference!) this behavior is applied to.\n\n     "
        }
      ],
      "description": "Get the array of bodies (by reference!) this behavior is applied to.",
      "short_description": "Get the array of bodies (by reference!) this behavior is applied to.",
      "line": 82,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "getTargets",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.getTargets",
      "outFile": "behavior.html#Behavior.prototype.getTargets"
    },
    "Behavior#setWorld": {
      "id": "Behavior#setWorld",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Object"
          ],
          "description": " The world (or null)\n\n     "
        }
      ],
      "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
      "short_description": "Set which world to apply to.\n",
      "line": 95,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "setWorld",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.setWorld",
      "outFile": "behavior.html#Behavior.prototype.setWorld"
    },
    "Behavior#connect": {
      "id": "Behavior#connect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to connect to\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Physics.world"
          ],
          "description": " The world to connect to\n\n     "
        }
      ],
      "description": "Connect to a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
      "short_description": "Connect to a world.\n",
      "line": 119,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "connect",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.connect",
      "outFile": "behavior.html#Behavior.prototype.connect"
    },
    "Behavior#disconnect": {
      "id": "Behavior#disconnect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to disconnect from\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Physics.world"
          ],
          "description": " The world to disconnect from\n\n     "
        }
      ],
      "description": "Disconnect from a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
      "short_description": "Disconnect from a world.\n",
      "line": 135,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "disconnect",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.disconnect",
      "outFile": "behavior.html#Behavior.prototype.disconnect"
    },
    "Behavior#behave": {
      "id": "Behavior#behave",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "Object"
              ],
              "description": " The pubsub `integrate:positions` event data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "Object"
          ],
          "description": " The pubsub `integrate:positions` event data\n\n     "
        }
      ],
      "description": "Default method run on every world integration.\n\nYou _must_ extend this when creating a behavior,\nunless you extend the [[Behavior#connect]] and [[Behavior#disconnect]] methods.",
      "short_description": "Default method run on every world integration.\n",
      "line": 151,
      "aliases": [],
      "children": [],
      "file": "src/core/behavior.js",
      "name": "behave",
      "name_prefix": "Behavior#",
      "path": "Behavior.prototype.behave",
      "outFile": "behavior.html#Behavior.prototype.behave"
    },
    "Physics.body": {
      "id": "Physics.body",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the body to create\n\n "
            },
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
            }
          ],
          "returns": [
            {
              "type": "Body"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " The name of the body to create\n\n "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
        }
      ],
      "related_to": "Physics.util.decorator",
      "description": "Factory function for creating Bodies.\n\nVisit [the PhysicsJS wiki on Bodies](https://github.com/wellcaffeinated/PhysicsJS/wiki/Bodies)\nfor usage documentation.",
      "short_description": "Factory function for creating Bodies.\n",
      "line": 58,
      "aliases": [],
      "children": [
        {
          "id": "Body",
          "type": "class",
          "belongs_to": "Physics.body",
          "description": "The base class for bodies created by [[Physics.body]] factory function.",
          "short_description": "The base class for bodies created by [[Physics.body]] factory function.",
          "line": 65,
          "aliases": [
            "PointBody"
          ],
          "children": [
            {
              "id": "Body#aabb",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The aabb of this body\n\n     "
                }
              ],
              "related_to": "Physics.aabb",
              "description": "Get the Axis aligned bounding box for the body in its current position and rotation",
              "short_description": "Get the Axis aligned bounding box for the body in its current position and rotation",
              "line": 458,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "aabb",
              "name_prefix": "Body#",
              "path": "Body.prototype.aabb",
              "outFile": "body.html#Body.prototype.aabb"
            },
            {
              "id": "Body#accelerate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "acc",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The acceleration vector\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "acc",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The acceleration vector\n\n     "
                }
              ],
              "description": "Accelerate the body by adding supplied vector to its current acceleration",
              "short_description": "Accelerate the body by adding supplied vector to its current acceleration",
              "line": 395,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "accelerate",
              "name_prefix": "Body#",
              "path": "Body.prototype.accelerate",
              "outFile": "body.html#Body.prototype.accelerate"
            },
            {
              "id": "Body#applyForce",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "force",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The force vector\n\n     "
                    },
                    {
                      "name": "p",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point vector from the COM at which to apply the force\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "force",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The force vector\n\n     "
                },
                {
                  "name": "p",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point vector from the COM at which to apply the force\n\n     "
                }
              ],
              "description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
              "short_description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
              "line": 411,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "applyForce",
              "name_prefix": "Body#",
              "path": "Body.prototype.applyForce",
              "outFile": "body.html#Body.prototype.applyForce"
            },
            {
              "id": "Body#cof",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "0.8"
                    }
                  ]
                }
              ],
              "description": "The coefficient of friction of the body.\n\nIt's how much \"slide\" it has during collisions.\n\nA `cof` of `0` will really slidy.\n\nA `cof` of `1` has no slide.\n\nThis is a very simplistic implementation at the moment.\nWhat would be better is to have both static and kinetic\nfriction. But that's not done yet.",
              "short_description": "The coefficient of friction of the body.\n",
              "line": 218,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "cof",
              "name_prefix": "Body#",
              "path": "Body.prototype.cof",
              "outFile": "body.html#Body.prototype.cof"
            },
            {
              "id": "Body#geometry",
              "type": "namespace",
              "related_to": "Physics.geometry",
              "description": "The geometry for this body.\n\nBy default it is a `point` geometry which gets overridden.",
              "short_description": "The geometry for this body.\n",
              "line": 171,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "geometry",
              "name_prefix": "Body#",
              "path": "Body.prototype.geometry",
              "outFile": "body.html#Body.prototype.geometry"
            },
            {
              "id": "Body#getGlobalOffset",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "out",
                      "optional": true,
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The offset in global coordinates\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "out",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The offset in global coordinates\n\n     "
                }
              ],
              "related_to": "Body#offset",
              "description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
              "short_description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
              "line": 445,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "getGlobalOffset",
              "name_prefix": "Body#",
              "path": "Body.prototype.getGlobalOffset",
              "outFile": "body.html#Body.prototype.getGlobalOffset"
            },
            {
              "id": "Body#hidden",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "false"
                    }
                  ]
                }
              ],
              "description": "Determines whether the body should be hidden by the renderer.",
              "short_description": "Determines whether the body should be hidden by the renderer.",
              "line": 237,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "hidden",
              "name_prefix": "Body#",
              "path": "Body.prototype.hidden",
              "outFile": "body.html#Body.prototype.hidden"
            },
            {
              "id": "Body#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ],
              "internal": true,
              "description": "Initialization. Internal use.",
              "short_description": "Initialization. Internal use.",
              "line": 72,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "init",
              "name_prefix": "Body#",
              "path": "Body.prototype.init",
              "outFile": "body.html#Body.prototype.init"
            },
            {
              "id": "Body#mass",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "1"
                    }
                  ]
                }
              ],
              "description": "The mass.",
              "short_description": "The mass.",
              "line": 178,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "mass",
              "name_prefix": "Body#",
              "path": "Body.prototype.mass",
              "outFile": "body.html#Body.prototype.mass"
            },
            {
              "id": "Body#offset",
              "type": "namespace",
              "description": "The vector offsetting the body's shape from its center of mass.",
              "short_description": "The vector offsetting the body's shape from its center of mass.",
              "line": 184,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "offset",
              "name_prefix": "Body#",
              "path": "Body.prototype.offset",
              "outFile": "body.html#Body.prototype.offset"
            },
            {
              "id": "Body#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ],
              "related_to": "Physics.util.options",
              "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
              "short_description": "Set options on this instance.\n",
              "line": 93,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "options",
              "name_prefix": "Body#",
              "path": "Body.prototype.options",
              "outFile": "body.html#Body.prototype.options"
            },
            {
              "id": "Body#recalc",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Recalculate properties.\n\nIntended to be overridden by subclasses. Call when body physical properties are changed.",
              "short_description": "Recalculate properties.\n",
              "line": 503,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "recalc",
              "name_prefix": "Body#",
              "path": "Body.prototype.recalc",
              "outFile": "body.html#Body.prototype.recalc"
            },
            {
              "id": "Body#restitution",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "1"
                    }
                  ]
                }
              ],
              "description": "The restitution.\n\nThis is the \"bounciness\" of the body.\nIt's a number between `0` and `1`.\n\nA restitution of 1 is the bounciest.\n\nA restitution of 0 is not bouncy.\n\nWhen colliding the restitutions of bodies are\nmultiplied together to get the restitution between two\nbodies.",
              "short_description": "The restitution.\n",
              "line": 202,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "restitution",
              "name_prefix": "Body#",
              "path": "Body.prototype.restitution",
              "outFile": "body.html#Body.prototype.restitution"
            },
            {
              "id": "Body#setWorld",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
              "short_description": "Set which world to apply to.\n",
              "line": 374,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "setWorld",
              "name_prefix": "Body#",
              "path": "Body.prototype.setWorld",
              "outFile": "body.html#Body.prototype.setWorld"
            },
            {
              "id": "Body#sleep",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dt",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Time to advance the idle time\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Time to advance the idle time\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Boolean"
                  ],
                  "description": " If `true`, the body will be forced to sleep. If `false`, the body will be forced to awake.\n\n     "
                }
              ],
              "description": "Get and/or set whether the body is asleep.\n\nIf called with a time (in ms), the time will be added to the idle time and sleep conditions will be checked.",
              "short_description": "Get and/or set whether the body is asleep.\n",
              "line": 271,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "sleep",
              "name_prefix": "Body#",
              "path": "Body.prototype.sleep",
              "outFile": "body.html#Body.prototype.sleep"
            },
            {
              "id": "Body#sleepCheck",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dt",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Time to advance the idle time\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Time to advance the idle time\n\n     "
                }
              ],
              "description": "Check if the body should be sleeping.\n\nCall with no arguments if some event could possibly wake up the body. This will force the body to recheck.",
              "short_description": "Check if the body should be sleeping.\n",
              "line": 303,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "sleepCheck",
              "name_prefix": "Body#",
              "path": "Body.prototype.sleepCheck",
              "outFile": "body.html#Body.prototype.sleepCheck"
            },
            {
              "id": "Body#state",
              "type": "namespace",
              "description": "The physical state container.\n\n- ``this.state.pos`` ([[Physics.vector]]) The position vector.\n- ``this.state.vel`` ([[Physics.vector]]) The velocity vector.\n- ``this.state.acc`` ([[Physics.vector]]) The acceleration vector.\n- ``this.state.angular.pos`` ([[Number]]) The angular position (in radians, positive is clockwise starting along the x axis)\n- ``this.state.angular.vel`` ([[Number]]) The angular velocity\n- ``this.state.angular.acc`` ([[Number]]) The angular acceleration\n\nProperties from the previous timestep are stored in:\n```javascript\nthis.state.old; // .pos, .vel, ...\n```",
              "short_description": "The physical state container.\n",
              "line": 117,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "state",
              "name_prefix": "Body#",
              "path": "Body.prototype.state",
              "outFile": "body.html#Body.prototype.state"
            },
            {
              "id": "Body#styles",
              "type": "namespace",
              "related_to": "Physics.renderer",
              "description": "The styles the renderer should use for creating the view.\n\nThe styles depend on the renderer. See [[Renderer#createView]] for style options.",
              "short_description": "The styles the renderer should use for creating the view.\n",
              "line": 260,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "styles",
              "name_prefix": "Body#",
              "path": "Body.prototype.styles",
              "outFile": "body.html#Body.prototype.styles"
            },
            {
              "id": "Body#toBodyCoords",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to transform\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The transformed vector\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to transform\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The transformed vector\n\n     "
                }
              ],
              "description": "Transform a vector into coordinates relative to this body.",
              "short_description": "Transform a vector into coordinates relative to this body.",
              "line": 481,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "toBodyCoords",
              "name_prefix": "Body#",
              "path": "Body.prototype.toBodyCoords",
              "outFile": "body.html#Body.prototype.toBodyCoords"
            },
            {
              "id": "Body#toWorldCoords",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to transform\n\n      "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The transformed vector\n\n      "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to transform\n\n      "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The transformed vector\n\n      "
                }
              ],
              "description": "Transform a vector from body coordinates into world coordinates.",
              "short_description": "Transform a vector from body coordinates into world coordinates.",
              "line": 492,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "toWorldCoords",
              "name_prefix": "Body#",
              "path": "Body.prototype.toWorldCoords",
              "outFile": "body.html#Body.prototype.toWorldCoords"
            },
            {
              "id": "Body#treatment",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "String"
                    }
                  ]
                }
              ],
              "description": "How the body is treated by the simulation.\n\nThe body can be `dynamic`, `kinematic` or `static` as\ndescribed by the [analogous box2d docs](http://www.box2d.org/manual.html#_Toc258082973).\n\n* _dynamic_ bodies are treated \"normally\". They are integrated, and collide, and all that.\n* _kinematic_ bodies are bodies that move at a specified velocity. Other bodies collide with them, but they don't bounce off of other bodies.\n* _static_ bodies just stand still. They are like obstacles.",
              "short_description": "How the body is treated by the simulation.\n",
              "line": 231,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "treatment",
              "name_prefix": "Body#",
              "path": "Body.prototype.treatment",
              "outFile": "body.html#Body.prototype.treatment"
            },
            {
              "id": "Body#uid",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "description": "The unique id for the body",
              "short_description": "The unique id for the body",
              "line": 162,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "uid",
              "name_prefix": "Body#",
              "path": "Body.prototype.uid",
              "outFile": "body.html#Body.prototype.uid"
            },
            {
              "id": "Body#view",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "it_depends"
                    }
                  ]
                }
              ],
              "related_to": "Physics.renderer",
              "description": "Storage for use by the renderer.\n\nThe type of renderer will put different things in the view property.\nBasically, this is how the body \"looks\". It could be a HTMLElement, or\nan Image, etc...\n\nIf your body changes appearance (shape), you should modify this somehow\notherwise the renderer will keep using this same view. If you're letting\nthe renderer create the view for you, just set this to `undefined` if the\nbody gets modified in shape during the simulation.",
              "short_description": "Storage for use by the renderer.\n",
              "line": 252,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "view",
              "name_prefix": "Body#",
              "path": "Body.prototype.view",
              "outFile": "body.html#Body.prototype.view"
            },
            {
              "id": "Body.getCOM",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " The list of bodies\n\n "
                    },
                    {
                      "name": "com",
                      "optional": true,
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The center of mass position\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " The list of bodies\n\n "
                },
                {
                  "name": "com",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The center of mass position\n\n "
                }
              ],
              "description": "Get center of mass position from list of bodies.",
              "short_description": "Get center of mass position from list of bodies.",
              "line": 517,
              "aliases": [],
              "children": [],
              "file": "src/core/body.js",
              "name": "getCOM",
              "name_prefix": "Body.",
              "path": "Body.getCOM",
              "outFile": "body.html#Body.getCOM"
            },
            {
              "id": "CircleBody",
              "type": "class",
              "superclass": "Body",
              "description": "Physics.body('circle')\n\nThe circle body has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
              "short_description": "Physics.body('circle')\n",
              "line": 24,
              "aliases": [],
              "children": [],
              "file": "src/bodies/circle.js",
              "subclasses": [],
              "name": "CircleBody",
              "path": "CircleBody",
              "outFile": "circle.html"
            },
            {
              "id": "CompoundBody",
              "type": "class",
              "superclass": "Body",
              "description": "Physics.body('compound')\n\nNot a body in itself. It's a container to group other bodies. The position of the body is the center of mass.\nIt must have at least one child before being added to the world.\n\nAdditional config options:\n\n- children: Array of [[Body]] objects.\n\nExample:\n\n```javascript\nvar thing = Physics.body('compound', {\n    // place the center of mass at (300, 200)\n    x: 300,\n    y: 200,\n    // the center of mass is automatically calculated and used to position the shape\n    children: [\n        body1,\n        body2,\n        // ...\n    ]\n});\n```",
              "short_description": "Physics.body('compound')\n",
              "line": 32,
              "aliases": [],
              "children": [
                {
                  "id": "CompoundBody#addChild",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " The child to add\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The child to add\n\n     "
                    }
                  ],
                  "description": "Add a body as a child.",
                  "short_description": "Add a body as a child.",
                  "line": 68,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/compound.js",
                  "name": "addChild",
                  "name_prefix": "CompoundBody#",
                  "path": "CompoundBody.prototype.addChild",
                  "outFile": "compound.html#CompoundBody.prototype.addChild"
                },
                {
                  "id": "CompoundBody#addChildren",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " The list of children to add\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " The list of children to add\n\n     "
                    }
                  ],
                  "description": "Add an array of children to the compound.",
                  "short_description": "Add an array of children to the compound.",
                  "line": 80,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/compound.js",
                  "name": "addChildren",
                  "name_prefix": "CompoundBody#",
                  "path": "CompoundBody.prototype.addChildren",
                  "outFile": "compound.html#CompoundBody.prototype.addChildren"
                },
                {
                  "id": "CompoundBody#clear",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Remove all children.",
                  "short_description": "Remove all children.",
                  "line": 142,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/compound.js",
                  "name": "clear",
                  "name_prefix": "CompoundBody#",
                  "path": "CompoundBody.prototype.clear",
                  "outFile": "compound.html#CompoundBody.prototype.clear"
                },
                {
                  "id": "CompoundBody#refreshGeometry",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                  "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                  "line": 159,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/compound.js",
                  "name": "refreshGeometry",
                  "name_prefix": "CompoundBody#",
                  "path": "CompoundBody.prototype.refreshGeometry",
                  "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
                }
              ],
              "file": "src/bodies/compound.js",
              "subclasses": [],
              "name": "CompoundBody",
              "path": "CompoundBody",
              "outFile": "compound.html"
            },
            {
              "id": "ConvexPolygonBody",
              "type": "class",
              "superclass": "Body",
              "description": "Physics.body('convex-polygon')\n\nBody for convex polygons. The position of the body is the centroid of the polygon.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.body('convex-polygon', {\n    // place the centroid of the polygon at (300, 200)\n    x: 300,\n    y: 200,\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
              "short_description": "Physics.body('convex-polygon')\n",
              "line": 33,
              "aliases": [],
              "children": [],
              "file": "src/bodies/convex-polygon.js",
              "subclasses": [],
              "name": "ConvexPolygonBody",
              "path": "ConvexPolygonBody",
              "outFile": "convex-polygon.html"
            },
            {
              "id": "PointBody",
              "type": "class",
              "superclass": "Body",
              "alias_of": "Body",
              "description": "Physics.body('point')\n\nThe point body represents a point.",
              "short_description": "Physics.body('point')\n",
              "line": 8,
              "aliases": [],
              "children": [],
              "file": "src/bodies/point.js",
              "subclasses": [],
              "name": "PointBody",
              "path": "PointBody",
              "outFile": "point.html"
            },
            {
              "id": "RectangleBody",
              "type": "class",
              "superclass": "Body",
              "description": "Physics.body('rectangle')\n\nBody for rectangles. The position of the body is the centroid of the rectangle.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rect = Physics.body('rectangle', {\n    // place the centroid of the rectangle at (300, 200)\n    x: 300,\n    y: 200,\n    width: 30,\n    height: 40\n});\n```",
              "short_description": "Physics.body('rectangle')\n",
              "line": 28,
              "aliases": [],
              "children": [],
              "file": "src/bodies/rectangle.js",
              "subclasses": [],
              "name": "RectangleBody",
              "path": "RectangleBody",
              "outFile": "rectangle.html"
            }
          ],
          "file": "src/core/body.js",
          "subclasses": [
            "CircleBody",
            "CompoundBody",
            "ConvexPolygonBody",
            "PointBody",
            "RectangleBody"
          ],
          "name": "Body",
          "path": "Body",
          "outFile": "body.html"
        }
      ],
      "file": "src/core/body.js",
      "name": "body",
      "name_prefix": "Physics.",
      "path": "Physics.body",
      "outFile": "body.html#Physics.body"
    },
    "Body": {
      "id": "Body",
      "type": "class",
      "belongs_to": "Physics.body",
      "description": "The base class for bodies created by [[Physics.body]] factory function.",
      "short_description": "The base class for bodies created by [[Physics.body]] factory function.",
      "line": 65,
      "aliases": [
        "PointBody"
      ],
      "children": [
        {
          "id": "Body#aabb",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The aabb of this body\n\n     "
            }
          ],
          "related_to": "Physics.aabb",
          "description": "Get the Axis aligned bounding box for the body in its current position and rotation",
          "short_description": "Get the Axis aligned bounding box for the body in its current position and rotation",
          "line": 458,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "aabb",
          "name_prefix": "Body#",
          "path": "Body.prototype.aabb",
          "outFile": "body.html#Body.prototype.aabb"
        },
        {
          "id": "Body#accelerate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "acc",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The acceleration vector\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "acc",
              "types": [
                "Physics.vector"
              ],
              "description": " The acceleration vector\n\n     "
            }
          ],
          "description": "Accelerate the body by adding supplied vector to its current acceleration",
          "short_description": "Accelerate the body by adding supplied vector to its current acceleration",
          "line": 395,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "accelerate",
          "name_prefix": "Body#",
          "path": "Body.prototype.accelerate",
          "outFile": "body.html#Body.prototype.accelerate"
        },
        {
          "id": "Body#applyForce",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "force",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The force vector\n\n     "
                },
                {
                  "name": "p",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point vector from the COM at which to apply the force\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "force",
              "types": [
                "Vectorish"
              ],
              "description": " The force vector\n\n     "
            },
            {
              "name": "p",
              "types": [
                "Vectorish"
              ],
              "description": " The point vector from the COM at which to apply the force\n\n     "
            }
          ],
          "description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
          "short_description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
          "line": 411,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "applyForce",
          "name_prefix": "Body#",
          "path": "Body.prototype.applyForce",
          "outFile": "body.html#Body.prototype.applyForce"
        },
        {
          "id": "Body#cof",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "0.8"
                }
              ]
            }
          ],
          "description": "The coefficient of friction of the body.\n\nIt's how much \"slide\" it has during collisions.\n\nA `cof` of `0` will really slidy.\n\nA `cof` of `1` has no slide.\n\nThis is a very simplistic implementation at the moment.\nWhat would be better is to have both static and kinetic\nfriction. But that's not done yet.",
          "short_description": "The coefficient of friction of the body.\n",
          "line": 218,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "cof",
          "name_prefix": "Body#",
          "path": "Body.prototype.cof",
          "outFile": "body.html#Body.prototype.cof"
        },
        {
          "id": "Body#geometry",
          "type": "namespace",
          "related_to": "Physics.geometry",
          "description": "The geometry for this body.\n\nBy default it is a `point` geometry which gets overridden.",
          "short_description": "The geometry for this body.\n",
          "line": 171,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "geometry",
          "name_prefix": "Body#",
          "path": "Body.prototype.geometry",
          "outFile": "body.html#Body.prototype.geometry"
        },
        {
          "id": "Body#getGlobalOffset",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "out",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The offset in global coordinates\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "out",
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The offset in global coordinates\n\n     "
            }
          ],
          "related_to": "Body#offset",
          "description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
          "short_description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
          "line": 445,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "getGlobalOffset",
          "name_prefix": "Body#",
          "path": "Body.prototype.getGlobalOffset",
          "outFile": "body.html#Body.prototype.getGlobalOffset"
        },
        {
          "id": "Body#hidden",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "false"
                }
              ]
            }
          ],
          "description": "Determines whether the body should be hidden by the renderer.",
          "short_description": "Determines whether the body should be hidden by the renderer.",
          "line": 237,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "hidden",
          "name_prefix": "Body#",
          "path": "Body.prototype.hidden",
          "outFile": "body.html#Body.prototype.hidden"
        },
        {
          "id": "Body#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ],
          "internal": true,
          "description": "Initialization. Internal use.",
          "short_description": "Initialization. Internal use.",
          "line": 72,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "init",
          "name_prefix": "Body#",
          "path": "Body.prototype.init",
          "outFile": "body.html#Body.prototype.init"
        },
        {
          "id": "Body#mass",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "1"
                }
              ]
            }
          ],
          "description": "The mass.",
          "short_description": "The mass.",
          "line": 178,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "mass",
          "name_prefix": "Body#",
          "path": "Body.prototype.mass",
          "outFile": "body.html#Body.prototype.mass"
        },
        {
          "id": "Body#offset",
          "type": "namespace",
          "description": "The vector offsetting the body's shape from its center of mass.",
          "short_description": "The vector offsetting the body's shape from its center of mass.",
          "line": 184,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "offset",
          "name_prefix": "Body#",
          "path": "Body.prototype.offset",
          "outFile": "body.html#Body.prototype.offset"
        },
        {
          "id": "Body#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ],
          "related_to": "Physics.util.options",
          "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
          "short_description": "Set options on this instance.\n",
          "line": 93,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "options",
          "name_prefix": "Body#",
          "path": "Body.prototype.options",
          "outFile": "body.html#Body.prototype.options"
        },
        {
          "id": "Body#recalc",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Recalculate properties.\n\nIntended to be overridden by subclasses. Call when body physical properties are changed.",
          "short_description": "Recalculate properties.\n",
          "line": 503,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "recalc",
          "name_prefix": "Body#",
          "path": "Body.prototype.recalc",
          "outFile": "body.html#Body.prototype.recalc"
        },
        {
          "id": "Body#restitution",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "1"
                }
              ]
            }
          ],
          "description": "The restitution.\n\nThis is the \"bounciness\" of the body.\nIt's a number between `0` and `1`.\n\nA restitution of 1 is the bounciest.\n\nA restitution of 0 is not bouncy.\n\nWhen colliding the restitutions of bodies are\nmultiplied together to get the restitution between two\nbodies.",
          "short_description": "The restitution.\n",
          "line": 202,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "restitution",
          "name_prefix": "Body#",
          "path": "Body.prototype.restitution",
          "outFile": "body.html#Body.prototype.restitution"
        },
        {
          "id": "Body#setWorld",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
          "short_description": "Set which world to apply to.\n",
          "line": 374,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "setWorld",
          "name_prefix": "Body#",
          "path": "Body.prototype.setWorld",
          "outFile": "body.html#Body.prototype.setWorld"
        },
        {
          "id": "Body#sleep",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dt",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Time to advance the idle time\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Time to advance the idle time\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Boolean"
              ],
              "description": " If `true`, the body will be forced to sleep. If `false`, the body will be forced to awake.\n\n     "
            }
          ],
          "description": "Get and/or set whether the body is asleep.\n\nIf called with a time (in ms), the time will be added to the idle time and sleep conditions will be checked.",
          "short_description": "Get and/or set whether the body is asleep.\n",
          "line": 271,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "sleep",
          "name_prefix": "Body#",
          "path": "Body.prototype.sleep",
          "outFile": "body.html#Body.prototype.sleep"
        },
        {
          "id": "Body#sleepCheck",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dt",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Time to advance the idle time\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Time to advance the idle time\n\n     "
            }
          ],
          "description": "Check if the body should be sleeping.\n\nCall with no arguments if some event could possibly wake up the body. This will force the body to recheck.",
          "short_description": "Check if the body should be sleeping.\n",
          "line": 303,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "sleepCheck",
          "name_prefix": "Body#",
          "path": "Body.prototype.sleepCheck",
          "outFile": "body.html#Body.prototype.sleepCheck"
        },
        {
          "id": "Body#state",
          "type": "namespace",
          "description": "The physical state container.\n\n- ``this.state.pos`` ([[Physics.vector]]) The position vector.\n- ``this.state.vel`` ([[Physics.vector]]) The velocity vector.\n- ``this.state.acc`` ([[Physics.vector]]) The acceleration vector.\n- ``this.state.angular.pos`` ([[Number]]) The angular position (in radians, positive is clockwise starting along the x axis)\n- ``this.state.angular.vel`` ([[Number]]) The angular velocity\n- ``this.state.angular.acc`` ([[Number]]) The angular acceleration\n\nProperties from the previous timestep are stored in:\n```javascript\nthis.state.old; // .pos, .vel, ...\n```",
          "short_description": "The physical state container.\n",
          "line": 117,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "state",
          "name_prefix": "Body#",
          "path": "Body.prototype.state",
          "outFile": "body.html#Body.prototype.state"
        },
        {
          "id": "Body#styles",
          "type": "namespace",
          "related_to": "Physics.renderer",
          "description": "The styles the renderer should use for creating the view.\n\nThe styles depend on the renderer. See [[Renderer#createView]] for style options.",
          "short_description": "The styles the renderer should use for creating the view.\n",
          "line": 260,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "styles",
          "name_prefix": "Body#",
          "path": "Body.prototype.styles",
          "outFile": "body.html#Body.prototype.styles"
        },
        {
          "id": "Body#toBodyCoords",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to transform\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The transformed vector\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to transform\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The transformed vector\n\n     "
            }
          ],
          "description": "Transform a vector into coordinates relative to this body.",
          "short_description": "Transform a vector into coordinates relative to this body.",
          "line": 481,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "toBodyCoords",
          "name_prefix": "Body#",
          "path": "Body.prototype.toBodyCoords",
          "outFile": "body.html#Body.prototype.toBodyCoords"
        },
        {
          "id": "Body#toWorldCoords",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to transform\n\n      "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The transformed vector\n\n      "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to transform\n\n      "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The transformed vector\n\n      "
            }
          ],
          "description": "Transform a vector from body coordinates into world coordinates.",
          "short_description": "Transform a vector from body coordinates into world coordinates.",
          "line": 492,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "toWorldCoords",
          "name_prefix": "Body#",
          "path": "Body.prototype.toWorldCoords",
          "outFile": "body.html#Body.prototype.toWorldCoords"
        },
        {
          "id": "Body#treatment",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "String"
                }
              ]
            }
          ],
          "description": "How the body is treated by the simulation.\n\nThe body can be `dynamic`, `kinematic` or `static` as\ndescribed by the [analogous box2d docs](http://www.box2d.org/manual.html#_Toc258082973).\n\n* _dynamic_ bodies are treated \"normally\". They are integrated, and collide, and all that.\n* _kinematic_ bodies are bodies that move at a specified velocity. Other bodies collide with them, but they don't bounce off of other bodies.\n* _static_ bodies just stand still. They are like obstacles.",
          "short_description": "How the body is treated by the simulation.\n",
          "line": 231,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "treatment",
          "name_prefix": "Body#",
          "path": "Body.prototype.treatment",
          "outFile": "body.html#Body.prototype.treatment"
        },
        {
          "id": "Body#uid",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "description": "The unique id for the body",
          "short_description": "The unique id for the body",
          "line": 162,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "uid",
          "name_prefix": "Body#",
          "path": "Body.prototype.uid",
          "outFile": "body.html#Body.prototype.uid"
        },
        {
          "id": "Body#view",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "it_depends"
                }
              ]
            }
          ],
          "related_to": "Physics.renderer",
          "description": "Storage for use by the renderer.\n\nThe type of renderer will put different things in the view property.\nBasically, this is how the body \"looks\". It could be a HTMLElement, or\nan Image, etc...\n\nIf your body changes appearance (shape), you should modify this somehow\notherwise the renderer will keep using this same view. If you're letting\nthe renderer create the view for you, just set this to `undefined` if the\nbody gets modified in shape during the simulation.",
          "short_description": "Storage for use by the renderer.\n",
          "line": 252,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "view",
          "name_prefix": "Body#",
          "path": "Body.prototype.view",
          "outFile": "body.html#Body.prototype.view"
        },
        {
          "id": "Body.getCOM",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " The list of bodies\n\n "
                },
                {
                  "name": "com",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The center of mass position\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " The list of bodies\n\n "
            },
            {
              "name": "com",
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The center of mass position\n\n "
            }
          ],
          "description": "Get center of mass position from list of bodies.",
          "short_description": "Get center of mass position from list of bodies.",
          "line": 517,
          "aliases": [],
          "children": [],
          "file": "src/core/body.js",
          "name": "getCOM",
          "name_prefix": "Body.",
          "path": "Body.getCOM",
          "outFile": "body.html#Body.getCOM"
        },
        {
          "id": "CircleBody",
          "type": "class",
          "superclass": "Body",
          "description": "Physics.body('circle')\n\nThe circle body has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
          "short_description": "Physics.body('circle')\n",
          "line": 24,
          "aliases": [],
          "children": [],
          "file": "src/bodies/circle.js",
          "subclasses": [],
          "name": "CircleBody",
          "path": "CircleBody",
          "outFile": "circle.html"
        },
        {
          "id": "CompoundBody",
          "type": "class",
          "superclass": "Body",
          "description": "Physics.body('compound')\n\nNot a body in itself. It's a container to group other bodies. The position of the body is the center of mass.\nIt must have at least one child before being added to the world.\n\nAdditional config options:\n\n- children: Array of [[Body]] objects.\n\nExample:\n\n```javascript\nvar thing = Physics.body('compound', {\n    // place the center of mass at (300, 200)\n    x: 300,\n    y: 200,\n    // the center of mass is automatically calculated and used to position the shape\n    children: [\n        body1,\n        body2,\n        // ...\n    ]\n});\n```",
          "short_description": "Physics.body('compound')\n",
          "line": 32,
          "aliases": [],
          "children": [
            {
              "id": "CompoundBody#addChild",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The child to add\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The child to add\n\n     "
                }
              ],
              "description": "Add a body as a child.",
              "short_description": "Add a body as a child.",
              "line": 68,
              "aliases": [],
              "children": [],
              "file": "src/bodies/compound.js",
              "name": "addChild",
              "name_prefix": "CompoundBody#",
              "path": "CompoundBody.prototype.addChild",
              "outFile": "compound.html#CompoundBody.prototype.addChild"
            },
            {
              "id": "CompoundBody#addChildren",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " The list of children to add\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " The list of children to add\n\n     "
                }
              ],
              "description": "Add an array of children to the compound.",
              "short_description": "Add an array of children to the compound.",
              "line": 80,
              "aliases": [],
              "children": [],
              "file": "src/bodies/compound.js",
              "name": "addChildren",
              "name_prefix": "CompoundBody#",
              "path": "CompoundBody.prototype.addChildren",
              "outFile": "compound.html#CompoundBody.prototype.addChildren"
            },
            {
              "id": "CompoundBody#clear",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Remove all children.",
              "short_description": "Remove all children.",
              "line": 142,
              "aliases": [],
              "children": [],
              "file": "src/bodies/compound.js",
              "name": "clear",
              "name_prefix": "CompoundBody#",
              "path": "CompoundBody.prototype.clear",
              "outFile": "compound.html#CompoundBody.prototype.clear"
            },
            {
              "id": "CompoundBody#refreshGeometry",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
              "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
              "line": 159,
              "aliases": [],
              "children": [],
              "file": "src/bodies/compound.js",
              "name": "refreshGeometry",
              "name_prefix": "CompoundBody#",
              "path": "CompoundBody.prototype.refreshGeometry",
              "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
            }
          ],
          "file": "src/bodies/compound.js",
          "subclasses": [],
          "name": "CompoundBody",
          "path": "CompoundBody",
          "outFile": "compound.html"
        },
        {
          "id": "ConvexPolygonBody",
          "type": "class",
          "superclass": "Body",
          "description": "Physics.body('convex-polygon')\n\nBody for convex polygons. The position of the body is the centroid of the polygon.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.body('convex-polygon', {\n    // place the centroid of the polygon at (300, 200)\n    x: 300,\n    y: 200,\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
          "short_description": "Physics.body('convex-polygon')\n",
          "line": 33,
          "aliases": [],
          "children": [],
          "file": "src/bodies/convex-polygon.js",
          "subclasses": [],
          "name": "ConvexPolygonBody",
          "path": "ConvexPolygonBody",
          "outFile": "convex-polygon.html"
        },
        {
          "id": "PointBody",
          "type": "class",
          "superclass": "Body",
          "alias_of": "Body",
          "description": "Physics.body('point')\n\nThe point body represents a point.",
          "short_description": "Physics.body('point')\n",
          "line": 8,
          "aliases": [],
          "children": [],
          "file": "src/bodies/point.js",
          "subclasses": [],
          "name": "PointBody",
          "path": "PointBody",
          "outFile": "point.html"
        },
        {
          "id": "RectangleBody",
          "type": "class",
          "superclass": "Body",
          "description": "Physics.body('rectangle')\n\nBody for rectangles. The position of the body is the centroid of the rectangle.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rect = Physics.body('rectangle', {\n    // place the centroid of the rectangle at (300, 200)\n    x: 300,\n    y: 200,\n    width: 30,\n    height: 40\n});\n```",
          "short_description": "Physics.body('rectangle')\n",
          "line": 28,
          "aliases": [],
          "children": [],
          "file": "src/bodies/rectangle.js",
          "subclasses": [],
          "name": "RectangleBody",
          "path": "RectangleBody",
          "outFile": "rectangle.html"
        }
      ],
      "file": "src/core/body.js",
      "subclasses": [
        "CircleBody",
        "CompoundBody",
        "ConvexPolygonBody",
        "PointBody",
        "RectangleBody"
      ],
      "name": "Body",
      "path": "Body",
      "outFile": "body.html"
    },
    "Body#init": {
      "id": "Body#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration options passed by the factory\n\n     "
        }
      ],
      "internal": true,
      "description": "Initialization. Internal use.",
      "short_description": "Initialization. Internal use.",
      "line": 72,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "init",
      "name_prefix": "Body#",
      "path": "Body.prototype.init",
      "outFile": "body.html#Body.prototype.init"
    },
    "Body#options": {
      "id": "Body#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The options to set as an object\n\n         "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The options\n\n         "
        }
      ],
      "related_to": "Physics.util.options",
      "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
      "short_description": "Set options on this instance.\n",
      "line": 93,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "options",
      "name_prefix": "Body#",
      "path": "Body.prototype.options",
      "outFile": "body.html#Body.prototype.options"
    },
    "Body#state": {
      "id": "Body#state",
      "type": "namespace",
      "description": "The physical state container.\n\n- ``this.state.pos`` ([[Physics.vector]]) The position vector.\n- ``this.state.vel`` ([[Physics.vector]]) The velocity vector.\n- ``this.state.acc`` ([[Physics.vector]]) The acceleration vector.\n- ``this.state.angular.pos`` ([[Number]]) The angular position (in radians, positive is clockwise starting along the x axis)\n- ``this.state.angular.vel`` ([[Number]]) The angular velocity\n- ``this.state.angular.acc`` ([[Number]]) The angular acceleration\n\nProperties from the previous timestep are stored in:\n```javascript\nthis.state.old; // .pos, .vel, ...\n```",
      "short_description": "The physical state container.\n",
      "line": 117,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "state",
      "name_prefix": "Body#",
      "path": "Body.prototype.state",
      "outFile": "body.html#Body.prototype.state"
    },
    "Body#uid": {
      "id": "Body#uid",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "description": "The unique id for the body",
      "short_description": "The unique id for the body",
      "line": 162,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "uid",
      "name_prefix": "Body#",
      "path": "Body.prototype.uid",
      "outFile": "body.html#Body.prototype.uid"
    },
    "Body#geometry": {
      "id": "Body#geometry",
      "type": "namespace",
      "related_to": "Physics.geometry",
      "description": "The geometry for this body.\n\nBy default it is a `point` geometry which gets overridden.",
      "short_description": "The geometry for this body.\n",
      "line": 171,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "geometry",
      "name_prefix": "Body#",
      "path": "Body.prototype.geometry",
      "outFile": "body.html#Body.prototype.geometry"
    },
    "Body#mass": {
      "id": "Body#mass",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "1"
            }
          ]
        }
      ],
      "description": "The mass.",
      "short_description": "The mass.",
      "line": 178,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "mass",
      "name_prefix": "Body#",
      "path": "Body.prototype.mass",
      "outFile": "body.html#Body.prototype.mass"
    },
    "Body#offset": {
      "id": "Body#offset",
      "type": "namespace",
      "description": "The vector offsetting the body's shape from its center of mass.",
      "short_description": "The vector offsetting the body's shape from its center of mass.",
      "line": 184,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "offset",
      "name_prefix": "Body#",
      "path": "Body.prototype.offset",
      "outFile": "body.html#Body.prototype.offset"
    },
    "Body#restitution": {
      "id": "Body#restitution",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "1"
            }
          ]
        }
      ],
      "description": "The restitution.\n\nThis is the \"bounciness\" of the body.\nIt's a number between `0` and `1`.\n\nA restitution of 1 is the bounciest.\n\nA restitution of 0 is not bouncy.\n\nWhen colliding the restitutions of bodies are\nmultiplied together to get the restitution between two\nbodies.",
      "short_description": "The restitution.\n",
      "line": 202,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "restitution",
      "name_prefix": "Body#",
      "path": "Body.prototype.restitution",
      "outFile": "body.html#Body.prototype.restitution"
    },
    "Body#cof": {
      "id": "Body#cof",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "0.8"
            }
          ]
        }
      ],
      "description": "The coefficient of friction of the body.\n\nIt's how much \"slide\" it has during collisions.\n\nA `cof` of `0` will really slidy.\n\nA `cof` of `1` has no slide.\n\nThis is a very simplistic implementation at the moment.\nWhat would be better is to have both static and kinetic\nfriction. But that's not done yet.",
      "short_description": "The coefficient of friction of the body.\n",
      "line": 218,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "cof",
      "name_prefix": "Body#",
      "path": "Body.prototype.cof",
      "outFile": "body.html#Body.prototype.cof"
    },
    "Body#treatment": {
      "id": "Body#treatment",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "String"
            }
          ]
        }
      ],
      "description": "How the body is treated by the simulation.\n\nThe body can be `dynamic`, `kinematic` or `static` as\ndescribed by the [analogous box2d docs](http://www.box2d.org/manual.html#_Toc258082973).\n\n* _dynamic_ bodies are treated \"normally\". They are integrated, and collide, and all that.\n* _kinematic_ bodies are bodies that move at a specified velocity. Other bodies collide with them, but they don't bounce off of other bodies.\n* _static_ bodies just stand still. They are like obstacles.",
      "short_description": "How the body is treated by the simulation.\n",
      "line": 231,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "treatment",
      "name_prefix": "Body#",
      "path": "Body.prototype.treatment",
      "outFile": "body.html#Body.prototype.treatment"
    },
    "Body#hidden": {
      "id": "Body#hidden",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "false"
            }
          ]
        }
      ],
      "description": "Determines whether the body should be hidden by the renderer.",
      "short_description": "Determines whether the body should be hidden by the renderer.",
      "line": 237,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "hidden",
      "name_prefix": "Body#",
      "path": "Body.prototype.hidden",
      "outFile": "body.html#Body.prototype.hidden"
    },
    "Body#view": {
      "id": "Body#view",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "it_depends"
            }
          ]
        }
      ],
      "related_to": "Physics.renderer",
      "description": "Storage for use by the renderer.\n\nThe type of renderer will put different things in the view property.\nBasically, this is how the body \"looks\". It could be a HTMLElement, or\nan Image, etc...\n\nIf your body changes appearance (shape), you should modify this somehow\notherwise the renderer will keep using this same view. If you're letting\nthe renderer create the view for you, just set this to `undefined` if the\nbody gets modified in shape during the simulation.",
      "short_description": "Storage for use by the renderer.\n",
      "line": 252,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "view",
      "name_prefix": "Body#",
      "path": "Body.prototype.view",
      "outFile": "body.html#Body.prototype.view"
    },
    "Body#styles": {
      "id": "Body#styles",
      "type": "namespace",
      "related_to": "Physics.renderer",
      "description": "The styles the renderer should use for creating the view.\n\nThe styles depend on the renderer. See [[Renderer#createView]] for style options.",
      "short_description": "The styles the renderer should use for creating the view.\n",
      "line": 260,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "styles",
      "name_prefix": "Body#",
      "path": "Body.prototype.styles",
      "outFile": "body.html#Body.prototype.styles"
    },
    "Body#sleep": {
      "id": "Body#sleep",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dt",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Time to advance the idle time\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " Time to advance the idle time\n\n     "
        },
        {
          "name": "dt",
          "types": [
            "Boolean"
          ],
          "description": " If `true`, the body will be forced to sleep. If `false`, the body will be forced to awake.\n\n     "
        }
      ],
      "description": "Get and/or set whether the body is asleep.\n\nIf called with a time (in ms), the time will be added to the idle time and sleep conditions will be checked.",
      "short_description": "Get and/or set whether the body is asleep.\n",
      "line": 271,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "sleep",
      "name_prefix": "Body#",
      "path": "Body.prototype.sleep",
      "outFile": "body.html#Body.prototype.sleep"
    },
    "Body#sleepCheck": {
      "id": "Body#sleepCheck",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dt",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Time to advance the idle time\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " Time to advance the idle time\n\n     "
        }
      ],
      "description": "Check if the body should be sleeping.\n\nCall with no arguments if some event could possibly wake up the body. This will force the body to recheck.",
      "short_description": "Check if the body should be sleeping.\n",
      "line": 303,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "sleepCheck",
      "name_prefix": "Body#",
      "path": "Body.prototype.sleepCheck",
      "outFile": "body.html#Body.prototype.sleepCheck"
    },
    "Body#setWorld": {
      "id": "Body#setWorld",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Object"
          ],
          "description": " The world (or null)\n\n     "
        }
      ],
      "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
      "short_description": "Set which world to apply to.\n",
      "line": 374,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "setWorld",
      "name_prefix": "Body#",
      "path": "Body.prototype.setWorld",
      "outFile": "body.html#Body.prototype.setWorld"
    },
    "Body#accelerate": {
      "id": "Body#accelerate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "acc",
              "types": [
                "Physics.vector"
              ],
              "description": " The acceleration vector\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "acc",
          "types": [
            "Physics.vector"
          ],
          "description": " The acceleration vector\n\n     "
        }
      ],
      "description": "Accelerate the body by adding supplied vector to its current acceleration",
      "short_description": "Accelerate the body by adding supplied vector to its current acceleration",
      "line": 395,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "accelerate",
      "name_prefix": "Body#",
      "path": "Body.prototype.accelerate",
      "outFile": "body.html#Body.prototype.accelerate"
    },
    "Body#applyForce": {
      "id": "Body#applyForce",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "force",
              "types": [
                "Vectorish"
              ],
              "description": " The force vector\n\n     "
            },
            {
              "name": "p",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The point vector from the COM at which to apply the force\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "force",
          "types": [
            "Vectorish"
          ],
          "description": " The force vector\n\n     "
        },
        {
          "name": "p",
          "types": [
            "Vectorish"
          ],
          "description": " The point vector from the COM at which to apply the force\n\n     "
        }
      ],
      "description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
      "short_description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
      "line": 411,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "applyForce",
      "name_prefix": "Body#",
      "path": "Body.prototype.applyForce",
      "outFile": "body.html#Body.prototype.applyForce"
    },
    "Body#getGlobalOffset": {
      "id": "Body#getGlobalOffset",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "out",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The offset in global coordinates\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "out",
          "types": [
            "Physics.vector"
          ],
          "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The offset in global coordinates\n\n     "
        }
      ],
      "related_to": "Body#offset",
      "description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
      "short_description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
      "line": 445,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "getGlobalOffset",
      "name_prefix": "Body#",
      "path": "Body.prototype.getGlobalOffset",
      "outFile": "body.html#Body.prototype.getGlobalOffset"
    },
    "Body#aabb": {
      "id": "Body#aabb",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The aabb of this body\n\n     "
        }
      ],
      "related_to": "Physics.aabb",
      "description": "Get the Axis aligned bounding box for the body in its current position and rotation",
      "short_description": "Get the Axis aligned bounding box for the body in its current position and rotation",
      "line": 458,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "aabb",
      "name_prefix": "Body#",
      "path": "Body.prototype.aabb",
      "outFile": "body.html#Body.prototype.aabb"
    },
    "Body#toBodyCoords": {
      "id": "Body#toBodyCoords",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to transform\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The transformed vector\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The vector to transform\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The transformed vector\n\n     "
        }
      ],
      "description": "Transform a vector into coordinates relative to this body.",
      "short_description": "Transform a vector into coordinates relative to this body.",
      "line": 481,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "toBodyCoords",
      "name_prefix": "Body#",
      "path": "Body.prototype.toBodyCoords",
      "outFile": "body.html#Body.prototype.toBodyCoords"
    },
    "Body#toWorldCoords": {
      "id": "Body#toWorldCoords",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to transform\n\n      "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The transformed vector\n\n      "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The vector to transform\n\n      "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The transformed vector\n\n      "
        }
      ],
      "description": "Transform a vector from body coordinates into world coordinates.",
      "short_description": "Transform a vector from body coordinates into world coordinates.",
      "line": 492,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "toWorldCoords",
      "name_prefix": "Body#",
      "path": "Body.prototype.toWorldCoords",
      "outFile": "body.html#Body.prototype.toWorldCoords"
    },
    "Body#recalc": {
      "id": "Body#recalc",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Recalculate properties.\n\nIntended to be overridden by subclasses. Call when body physical properties are changed.",
      "short_description": "Recalculate properties.\n",
      "line": 503,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "recalc",
      "name_prefix": "Body#",
      "path": "Body.prototype.recalc",
      "outFile": "body.html#Body.prototype.recalc"
    },
    "Body.getCOM": {
      "id": "Body.getCOM",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " The list of bodies\n\n "
            },
            {
              "name": "com",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The center of mass position\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " The list of bodies\n\n "
        },
        {
          "name": "com",
          "types": [
            "Physics.vector"
          ],
          "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The center of mass position\n\n "
        }
      ],
      "description": "Get center of mass position from list of bodies.",
      "short_description": "Get center of mass position from list of bodies.",
      "line": 517,
      "aliases": [],
      "children": [],
      "file": "src/core/body.js",
      "name": "getCOM",
      "name_prefix": "Body.",
      "path": "Body.getCOM",
      "outFile": "body.html#Body.getCOM"
    },
    "Physics.geometry.regularPolygonVertices": {
      "id": "Physics.geometry.regularPolygonVertices",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "sides",
              "types": [
                "Number"
              ],
              "description": " Number of sides the polygon has\n\n "
            },
            {
              "name": "radius",
              "types": [
                "Number"
              ],
              "description": " Size from center to a vertex\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "sides",
          "types": [
            "Number"
          ],
          "description": " Number of sides the polygon has\n\n "
        },
        {
          "name": "radius",
          "types": [
            "Number"
          ],
          "description": " Size from center to a vertex\n\n "
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
        }
      ],
      "description": "Generate a list of vertices for a regular polygon of any number of sides.",
      "short_description": "Generate a list of vertices for a regular polygon of any number of sides.",
      "line": 13,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "regularPolygonVertices",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.regularPolygonVertices",
      "outFile": "geometry-helpers.html#Physics.geometry.regularPolygonVertices"
    },
    "Physics.geometry.isPolygonConvex": {
      "id": "Physics.geometry.isPolygonConvex",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Array of ([[Vectorish]]) vertices\n\n "
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
        }
      ],
      "description": "Determine if polygon hull is convex",
      "short_description": "Determine if polygon hull is convex",
      "line": 39,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "isPolygonConvex",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.isPolygonConvex",
      "outFile": "geometry-helpers.html#Physics.geometry.isPolygonConvex"
    },
    "Physics.geometry.getPolygonMOI": {
      "id": "Physics.geometry.getPolygonMOI",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The polygon's moment of inertia\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Array of ([[Vectorish]]) vertices\n\n "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " The polygon's moment of inertia\n\n "
        }
      ],
      "description": "Gets the moment of inertia of a convex polygon\n\nSee [List of moments of inertia](http://en.wikipedia.org/wiki/List_of_moments_of_inertia)\nfor more information.\n\n_Note_: we make the following assumpations:\n* mass is unitary (== 1)\n* axis of rotation is the origin",
      "short_description": "Gets the moment of inertia of a convex polygon\n",
      "line": 104,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "getPolygonMOI",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.getPolygonMOI",
      "outFile": "geometry-helpers.html#Physics.geometry.getPolygonMOI"
    },
    "Physics.geometry.isPointInPolygon": {
      "id": "Physics.geometry.isPointInPolygon",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point to test\n\n "
            },
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if point `pt` is inside the polygon\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "pt",
          "types": [
            "Vectorish"
          ],
          "description": " The point to test\n\n "
        },
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Array of ([[Vectorish]]) vertices\n\n "
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if point `pt` is inside the polygon\n\n "
        }
      ],
      "description": "Check if point is inside polygon hull.",
      "short_description": "Check if point is inside polygon hull.",
      "line": 155,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "isPointInPolygon",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.isPointInPolygon",
      "outFile": "geometry-helpers.html#Physics.geometry.isPointInPolygon"
    },
    "Physics.geometry.getPolygonArea": {
      "id": "Physics.geometry.getPolygonArea",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The area (positive for clockwise ordering)\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Array of ([[Vectorish]]) vertices\n\n "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " The area (positive for clockwise ordering)\n\n "
        }
      ],
      "description": "Get the signed area of the polygon.",
      "short_description": "Get the signed area of the polygon.",
      "line": 202,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "getPolygonArea",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.getPolygonArea",
      "outFile": "geometry-helpers.html#Physics.geometry.getPolygonArea"
    },
    "Physics.geometry.getPolygonCentroid": {
      "id": "Physics.geometry.getPolygonCentroid",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The centroid\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Array of ([[Vectorish]]) vertices\n\n "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The centroid\n\n "
        }
      ],
      "description": "Get the coordinates of the centroid.",
      "short_description": "Get the coordinates of the centroid.",
      "line": 240,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "getPolygonCentroid",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.getPolygonCentroid",
      "outFile": "geometry-helpers.html#Physics.geometry.getPolygonCentroid"
    },
    "Physics.geometry.nearestPointOnLine": {
      "id": "Physics.geometry.nearestPointOnLine",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point\n\n "
            },
            {
              "name": "linePt1",
              "types": [
                "Vectorish"
              ],
              "description": " The first endpoint of the line\n\n "
            },
            {
              "name": "linePt2",
              "types": [
                "Vectorish"
              ],
              "description": " The second endpoint of the line\n\n "
            }
          ],
          "returns": [
            {
              "type": "Vector",
              "description": " The closest point\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "pt",
          "types": [
            "Vectorish"
          ],
          "description": " The point\n\n "
        },
        {
          "name": "linePt1",
          "types": [
            "Vectorish"
          ],
          "description": " The first endpoint of the line\n\n "
        },
        {
          "name": "linePt2",
          "types": [
            "Vectorish"
          ],
          "description": " The second endpoint of the line\n\n "
        }
      ],
      "returns": [
        {
          "type": "Vector",
          "description": " The closest point\n\n "
        }
      ],
      "description": "Get the closest point on a discrete line to specified point.",
      "short_description": "Get the closest point on a discrete line to specified point.",
      "line": 291,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry-helpers.js",
      "name": "nearestPointOnLine",
      "name_prefix": "Physics.geometry.",
      "path": "Physics.geometry.nearestPointOnLine",
      "outFile": "geometry-helpers.html#Physics.geometry.nearestPointOnLine"
    },
    "Physics.geometry": {
      "id": "Physics.geometry",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the geometry to create\n\n "
            },
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration for that geometry ( depends on geometry ).\n\n "
            }
          ],
          "returns": [
            {
              "type": "Geometry"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " The name of the geometry to create\n\n "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration for that geometry ( depends on geometry ).\n\n "
        }
      ],
      "related_to": "Physics.util.decorator",
      "description": "Factory function for creating Geometries.\n\nVisit [the PhysicsJS wiki on Geometries](https://github.com/wellcaffeinated/PhysicsJS/wiki/Geometries)\nfor usage documentation.",
      "short_description": "Factory function for creating Geometries.\n",
      "line": 12,
      "aliases": [],
      "children": [
        {
          "id": "Physics.geometry.getPolygonArea",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The area (positive for clockwise ordering)\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The area (positive for clockwise ordering)\n\n "
            }
          ],
          "description": "Get the signed area of the polygon.",
          "short_description": "Get the signed area of the polygon.",
          "line": 202,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "getPolygonArea",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.getPolygonArea",
          "outFile": "geometry-helpers.html#Physics.geometry.getPolygonArea"
        },
        {
          "id": "Physics.geometry.getPolygonCentroid",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The centroid\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The centroid\n\n "
            }
          ],
          "description": "Get the coordinates of the centroid.",
          "short_description": "Get the coordinates of the centroid.",
          "line": 240,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "getPolygonCentroid",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.getPolygonCentroid",
          "outFile": "geometry-helpers.html#Physics.geometry.getPolygonCentroid"
        },
        {
          "id": "Physics.geometry.getPolygonMOI",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The polygon's moment of inertia\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The polygon's moment of inertia\n\n "
            }
          ],
          "description": "Gets the moment of inertia of a convex polygon\n\nSee [List of moments of inertia](http://en.wikipedia.org/wiki/List_of_moments_of_inertia)\nfor more information.\n\n_Note_: we make the following assumpations:\n* mass is unitary (== 1)\n* axis of rotation is the origin",
          "short_description": "Gets the moment of inertia of a convex polygon\n",
          "line": 104,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "getPolygonMOI",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.getPolygonMOI",
          "outFile": "geometry-helpers.html#Physics.geometry.getPolygonMOI"
        },
        {
          "id": "Physics.geometry.isPointInPolygon",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point to test\n\n "
                },
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if point `pt` is inside the polygon\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point to test\n\n "
            },
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if point `pt` is inside the polygon\n\n "
            }
          ],
          "description": "Check if point is inside polygon hull.",
          "short_description": "Check if point is inside polygon hull.",
          "line": 155,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "isPointInPolygon",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.isPointInPolygon",
          "outFile": "geometry-helpers.html#Physics.geometry.isPointInPolygon"
        },
        {
          "id": "Physics.geometry.isPolygonConvex",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Array of ([[Vectorish]]) vertices\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
            }
          ],
          "description": "Determine if polygon hull is convex",
          "short_description": "Determine if polygon hull is convex",
          "line": 39,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "isPolygonConvex",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.isPolygonConvex",
          "outFile": "geometry-helpers.html#Physics.geometry.isPolygonConvex"
        },
        {
          "id": "Physics.geometry.nearestPointOnLine",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point\n\n "
                },
                {
                  "name": "linePt1",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The first endpoint of the line\n\n "
                },
                {
                  "name": "linePt2",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The second endpoint of the line\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Vector",
                  "description": " The closest point\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point\n\n "
            },
            {
              "name": "linePt1",
              "types": [
                "Vectorish"
              ],
              "description": " The first endpoint of the line\n\n "
            },
            {
              "name": "linePt2",
              "types": [
                "Vectorish"
              ],
              "description": " The second endpoint of the line\n\n "
            }
          ],
          "returns": [
            {
              "type": "Vector",
              "description": " The closest point\n\n "
            }
          ],
          "description": "Get the closest point on a discrete line to specified point.",
          "short_description": "Get the closest point on a discrete line to specified point.",
          "line": 291,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "nearestPointOnLine",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.nearestPointOnLine",
          "outFile": "geometry-helpers.html#Physics.geometry.nearestPointOnLine"
        },
        {
          "id": "Physics.geometry.regularPolygonVertices",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "sides",
                  "types": [
                    "Number"
                  ],
                  "description": " Number of sides the polygon has\n\n "
                },
                {
                  "name": "radius",
                  "types": [
                    "Number"
                  ],
                  "description": " Size from center to a vertex\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "sides",
              "types": [
                "Number"
              ],
              "description": " Number of sides the polygon has\n\n "
            },
            {
              "name": "radius",
              "types": [
                "Number"
              ],
              "description": " Size from center to a vertex\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
            }
          ],
          "description": "Generate a list of vertices for a regular polygon of any number of sides.",
          "short_description": "Generate a list of vertices for a regular polygon of any number of sides.",
          "line": 13,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry-helpers.js",
          "name": "regularPolygonVertices",
          "name_prefix": "Physics.geometry.",
          "path": "Physics.geometry.regularPolygonVertices",
          "outFile": "geometry-helpers.html#Physics.geometry.regularPolygonVertices"
        },
        {
          "id": "Geometry",
          "type": "class",
          "belongs_to": "Physics.geometry",
          "description": "The base class for geometries created by [[Physics.geometry]] factory function.",
          "short_description": "The base class for geometries created by [[Physics.geometry]] factory function.",
          "line": 19,
          "aliases": [
            "PointGeometry"
          ],
          "children": [
            {
              "id": "Geometry#aabb",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "angle",
                      "types": [
                        "Number"
                      ],
                      "description": " The angle to rotate the geometry\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Bounding box values\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " The angle to rotate the geometry\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Bounding box values\n\n     "
                }
              ],
              "related_to": "Physics.aabb",
              "description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
              "short_description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
              "line": 57,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry.js",
              "name": "aabb",
              "name_prefix": "Geometry#",
              "path": "Geometry.prototype.aabb",
              "outFile": "geometry.html#Geometry.prototype.aabb"
            },
            {
              "id": "Geometry#getFarthestCorePoint",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dir",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " Direction to look\n\n     "
                    },
                    {
                      "name": "result",
                      "optional": true,
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to write result to. Speeds up calculations.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The farthest hull point in local coordinates\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dir",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " Direction to look\n\n     "
                },
                {
                  "name": "result",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to write result to. Speeds up calculations.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The farthest hull point in local coordinates\n\n     "
                }
              ],
              "related_to": "Geometry#getFarthestHullPoint",
              "description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nThis does almost the same thing as [[Geometry#getFarthestHullPoint]]\nbut shrinks the shape by subtracting \"margin\" from it.\nReturn the position of the point on the \"core\" shape.",
              "short_description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
              "line": 104,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry.js",
              "name": "getFarthestCorePoint",
              "name_prefix": "Geometry#",
              "path": "Geometry.prototype.getFarthestCorePoint",
              "outFile": "geometry.html#Geometry.prototype.getFarthestCorePoint"
            },
            {
              "id": "Geometry#getFarthestHullPoint",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dir",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " Direction to look\n\n     "
                    },
                    {
                      "name": "result",
                      "optional": true,
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to write result to. Speeds up calculations.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The farthest hull point in local coordinates\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dir",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " Direction to look\n\n     "
                },
                {
                  "name": "result",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to write result to. Speeds up calculations.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The farthest hull point in local coordinates\n\n     "
                }
              ],
              "description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nAssume all coordinates are relative to the geometry\ncentroid (IE: in the body frame).\n\nThis should take a direction vector then it should\ncalculate the location (in that frame of reference)\nof the point on the perimeter (hull) if you traveled\nin a straight line from the centroid in the provided\ndirection. The result should be returned/set just like\nit is in the other geometries.",
              "short_description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
              "line": 82,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry.js",
              "name": "getFarthestHullPoint",
              "name_prefix": "Geometry#",
              "path": "Geometry.prototype.getFarthestHullPoint",
              "outFile": "geometry.html#Geometry.prototype.getFarthestHullPoint"
            },
            {
              "id": "Geometry#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ],
              "internal": true,
              "description": "Initialization. Internal use.",
              "short_description": "Initialization. Internal use.",
              "line": 26,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry.js",
              "name": "init",
              "name_prefix": "Geometry#",
              "path": "Geometry.prototype.init",
              "outFile": "geometry.html#Geometry.prototype.init"
            },
            {
              "id": "Geometry#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ],
              "related_to": "Physics.util.options",
              "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
              "short_description": "Set options on this instance.\n",
              "line": 44,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry.js",
              "name": "options",
              "name_prefix": "Geometry#",
              "path": "Geometry.prototype.options",
              "outFile": "geometry.html#Geometry.prototype.options"
            },
            {
              "id": "CircleGeometry",
              "type": "class",
              "superclass": "Geometry",
              "description": "Physics.geometry('circle')\n\nThe circle geometry has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
              "short_description": "Physics.geometry('circle')\n",
              "line": 21,
              "aliases": [],
              "children": [],
              "file": "src/geometries/circle.js",
              "subclasses": [],
              "name": "CircleGeometry",
              "path": "CircleGeometry",
              "outFile": "circle.html"
            },
            {
              "id": "CompoundGeometry",
              "type": "class",
              "superclass": "Geometry",
              "description": "Physics.geometry('compound')\n\nGeometry for compound shapes.\n\nExample:\n\n```javascript\nvar thing = Physics.geometry('compound');\nthing.addChild( child, pos, rotation );\n```",
              "short_description": "Physics.geometry('compound')\n",
              "line": 15,
              "aliases": [],
              "children": [
                {
                  "id": "CompoundGeometry#addChild",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The child to add.\n\n     "
                        },
                        {
                          "name": "pos",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The position to add the child at.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The child to add.\n\n     "
                    },
                    {
                      "name": "pos",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The position to add the child at.\n\n     "
                    },
                    {
                      "name": "angle",
                      "types": [
                        "Number"
                      ],
                      "description": " The rotation angle\n\n     "
                    }
                  ],
                  "description": "Add a child at relative position.",
                  "short_description": "Add a child at relative position.",
                  "line": 45,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/compound.js",
                  "name": "addChild",
                  "name_prefix": "CompoundGeometry#",
                  "path": "CompoundGeometry.prototype.addChild",
                  "outFile": "compound.html#CompoundGeometry.prototype.addChild"
                },
                {
                  "id": "CompoundGeometry#clear",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Remove all children.",
                  "short_description": "Remove all children.",
                  "line": 62,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/compound.js",
                  "name": "clear",
                  "name_prefix": "CompoundGeometry#",
                  "path": "CompoundGeometry.prototype.clear",
                  "outFile": "compound.html#CompoundGeometry.prototype.clear"
                }
              ],
              "file": "src/geometries/compound.js",
              "subclasses": [],
              "name": "CompoundGeometry",
              "path": "CompoundGeometry",
              "outFile": "compound.html"
            },
            {
              "id": "ConvexPolygonGeometry",
              "type": "class",
              "superclass": "Geometry",
              "description": "Physics.geometry('convex-polygon')\n\nGeometry for convex polygons.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.geometry('convex-polygon', {\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
              "short_description": "Physics.geometry('convex-polygon')\n",
              "line": 27,
              "aliases": [],
              "children": [
                {
                  "id": "ConvexPolygonGeometry#setVertices",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "hull",
                          "types": [
                            "Array"
                          ],
                          "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                    }
                  ],
                  "description": "Set the vertices of this polygon.",
                  "short_description": "Set the vertices of this polygon.",
                  "line": 61,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/convex-polygon.js",
                  "name": "setVertices",
                  "name_prefix": "ConvexPolygonGeometry#",
                  "path": "ConvexPolygonGeometry.prototype.setVertices",
                  "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
                }
              ],
              "file": "src/geometries/convex-polygon.js",
              "subclasses": [],
              "name": "ConvexPolygonGeometry",
              "path": "ConvexPolygonGeometry",
              "outFile": "convex-polygon.html"
            },
            {
              "id": "PointGeometry",
              "type": "class",
              "superclass": "Geometry",
              "alias_of": "Geometry",
              "description": "Physics.geometry('point')\n\nThe point geometry represents a point.",
              "short_description": "Physics.geometry('point')\n",
              "line": 8,
              "aliases": [],
              "children": [],
              "file": "src/geometries/point.js",
              "subclasses": [],
              "name": "PointGeometry",
              "path": "PointGeometry",
              "outFile": "point.html"
            },
            {
              "id": "RectangleGeometry",
              "type": "class",
              "superclass": "Geometry",
              "description": "Physics.geometry('rectangle')\n\nGeometry for rectangles.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rectGeo = Physics.geometry('rectangle', {\n    width: 30,\n    height: 40\n});\n```",
              "short_description": "Physics.geometry('rectangle')\n",
              "line": 22,
              "aliases": [],
              "children": [
                {
                  "id": "RectangleGeometry#height",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "Number"
                        }
                      ]
                    }
                  ],
                  "description": "The height",
                  "short_description": "The height",
                  "line": 51,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/rectangle.js",
                  "name": "height",
                  "name_prefix": "RectangleGeometry#",
                  "path": "RectangleGeometry.prototype.height",
                  "outFile": "rectangle.html#RectangleGeometry.prototype.height"
                },
                {
                  "id": "RectangleGeometry#width",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "Number"
                        }
                      ]
                    }
                  ],
                  "description": "The width",
                  "short_description": "The width",
                  "line": 45,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/rectangle.js",
                  "name": "width",
                  "name_prefix": "RectangleGeometry#",
                  "path": "RectangleGeometry.prototype.width",
                  "outFile": "rectangle.html#RectangleGeometry.prototype.width"
                }
              ],
              "file": "src/geometries/rectangle.js",
              "subclasses": [],
              "name": "RectangleGeometry",
              "path": "RectangleGeometry",
              "outFile": "rectangle.html"
            }
          ],
          "file": "src/core/geometry.js",
          "subclasses": [
            "CircleGeometry",
            "CompoundGeometry",
            "ConvexPolygonGeometry",
            "PointGeometry",
            "RectangleGeometry"
          ],
          "name": "Geometry",
          "path": "Geometry",
          "outFile": "geometry.html"
        }
      ],
      "file": "src/core/geometry.js",
      "name": "geometry",
      "name_prefix": "Physics.",
      "path": "Physics.geometry",
      "outFile": "geometry.html#Physics.geometry"
    },
    "Geometry": {
      "id": "Geometry",
      "type": "class",
      "belongs_to": "Physics.geometry",
      "description": "The base class for geometries created by [[Physics.geometry]] factory function.",
      "short_description": "The base class for geometries created by [[Physics.geometry]] factory function.",
      "line": 19,
      "aliases": [
        "PointGeometry"
      ],
      "children": [
        {
          "id": "Geometry#aabb",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " The angle to rotate the geometry\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Bounding box values\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " The angle to rotate the geometry\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Bounding box values\n\n     "
            }
          ],
          "related_to": "Physics.aabb",
          "description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
          "short_description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
          "line": 57,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry.js",
          "name": "aabb",
          "name_prefix": "Geometry#",
          "path": "Geometry.prototype.aabb",
          "outFile": "geometry.html#Geometry.prototype.aabb"
        },
        {
          "id": "Geometry#getFarthestCorePoint",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dir",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " Direction to look\n\n     "
                },
                {
                  "name": "result",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to write result to. Speeds up calculations.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The farthest hull point in local coordinates\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dir",
              "types": [
                "Physics.vector"
              ],
              "description": " Direction to look\n\n     "
            },
            {
              "name": "result",
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to write result to. Speeds up calculations.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The farthest hull point in local coordinates\n\n     "
            }
          ],
          "related_to": "Geometry#getFarthestHullPoint",
          "description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nThis does almost the same thing as [[Geometry#getFarthestHullPoint]]\nbut shrinks the shape by subtracting \"margin\" from it.\nReturn the position of the point on the \"core\" shape.",
          "short_description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
          "line": 104,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry.js",
          "name": "getFarthestCorePoint",
          "name_prefix": "Geometry#",
          "path": "Geometry.prototype.getFarthestCorePoint",
          "outFile": "geometry.html#Geometry.prototype.getFarthestCorePoint"
        },
        {
          "id": "Geometry#getFarthestHullPoint",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dir",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " Direction to look\n\n     "
                },
                {
                  "name": "result",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " A vector to write result to. Speeds up calculations.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The farthest hull point in local coordinates\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dir",
              "types": [
                "Physics.vector"
              ],
              "description": " Direction to look\n\n     "
            },
            {
              "name": "result",
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to write result to. Speeds up calculations.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The farthest hull point in local coordinates\n\n     "
            }
          ],
          "description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nAssume all coordinates are relative to the geometry\ncentroid (IE: in the body frame).\n\nThis should take a direction vector then it should\ncalculate the location (in that frame of reference)\nof the point on the perimeter (hull) if you traveled\nin a straight line from the centroid in the provided\ndirection. The result should be returned/set just like\nit is in the other geometries.",
          "short_description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
          "line": 82,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry.js",
          "name": "getFarthestHullPoint",
          "name_prefix": "Geometry#",
          "path": "Geometry.prototype.getFarthestHullPoint",
          "outFile": "geometry.html#Geometry.prototype.getFarthestHullPoint"
        },
        {
          "id": "Geometry#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ],
          "internal": true,
          "description": "Initialization. Internal use.",
          "short_description": "Initialization. Internal use.",
          "line": 26,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry.js",
          "name": "init",
          "name_prefix": "Geometry#",
          "path": "Geometry.prototype.init",
          "outFile": "geometry.html#Geometry.prototype.init"
        },
        {
          "id": "Geometry#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ],
          "related_to": "Physics.util.options",
          "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
          "short_description": "Set options on this instance.\n",
          "line": 44,
          "aliases": [],
          "children": [],
          "file": "src/core/geometry.js",
          "name": "options",
          "name_prefix": "Geometry#",
          "path": "Geometry.prototype.options",
          "outFile": "geometry.html#Geometry.prototype.options"
        },
        {
          "id": "CircleGeometry",
          "type": "class",
          "superclass": "Geometry",
          "description": "Physics.geometry('circle')\n\nThe circle geometry has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
          "short_description": "Physics.geometry('circle')\n",
          "line": 21,
          "aliases": [],
          "children": [],
          "file": "src/geometries/circle.js",
          "subclasses": [],
          "name": "CircleGeometry",
          "path": "CircleGeometry",
          "outFile": "circle.html"
        },
        {
          "id": "CompoundGeometry",
          "type": "class",
          "superclass": "Geometry",
          "description": "Physics.geometry('compound')\n\nGeometry for compound shapes.\n\nExample:\n\n```javascript\nvar thing = Physics.geometry('compound');\nthing.addChild( child, pos, rotation );\n```",
          "short_description": "Physics.geometry('compound')\n",
          "line": 15,
          "aliases": [],
          "children": [
            {
              "id": "CompoundGeometry#addChild",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The child to add.\n\n     "
                    },
                    {
                      "name": "pos",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The position to add the child at.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The child to add.\n\n     "
                },
                {
                  "name": "pos",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position to add the child at.\n\n     "
                },
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " The rotation angle\n\n     "
                }
              ],
              "description": "Add a child at relative position.",
              "short_description": "Add a child at relative position.",
              "line": 45,
              "aliases": [],
              "children": [],
              "file": "src/geometries/compound.js",
              "name": "addChild",
              "name_prefix": "CompoundGeometry#",
              "path": "CompoundGeometry.prototype.addChild",
              "outFile": "compound.html#CompoundGeometry.prototype.addChild"
            },
            {
              "id": "CompoundGeometry#clear",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Remove all children.",
              "short_description": "Remove all children.",
              "line": 62,
              "aliases": [],
              "children": [],
              "file": "src/geometries/compound.js",
              "name": "clear",
              "name_prefix": "CompoundGeometry#",
              "path": "CompoundGeometry.prototype.clear",
              "outFile": "compound.html#CompoundGeometry.prototype.clear"
            }
          ],
          "file": "src/geometries/compound.js",
          "subclasses": [],
          "name": "CompoundGeometry",
          "path": "CompoundGeometry",
          "outFile": "compound.html"
        },
        {
          "id": "ConvexPolygonGeometry",
          "type": "class",
          "superclass": "Geometry",
          "description": "Physics.geometry('convex-polygon')\n\nGeometry for convex polygons.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.geometry('convex-polygon', {\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
          "short_description": "Physics.geometry('convex-polygon')\n",
          "line": 27,
          "aliases": [],
          "children": [
            {
              "id": "ConvexPolygonGeometry#setVertices",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                }
              ],
              "description": "Set the vertices of this polygon.",
              "short_description": "Set the vertices of this polygon.",
              "line": 61,
              "aliases": [],
              "children": [],
              "file": "src/geometries/convex-polygon.js",
              "name": "setVertices",
              "name_prefix": "ConvexPolygonGeometry#",
              "path": "ConvexPolygonGeometry.prototype.setVertices",
              "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
            }
          ],
          "file": "src/geometries/convex-polygon.js",
          "subclasses": [],
          "name": "ConvexPolygonGeometry",
          "path": "ConvexPolygonGeometry",
          "outFile": "convex-polygon.html"
        },
        {
          "id": "PointGeometry",
          "type": "class",
          "superclass": "Geometry",
          "alias_of": "Geometry",
          "description": "Physics.geometry('point')\n\nThe point geometry represents a point.",
          "short_description": "Physics.geometry('point')\n",
          "line": 8,
          "aliases": [],
          "children": [],
          "file": "src/geometries/point.js",
          "subclasses": [],
          "name": "PointGeometry",
          "path": "PointGeometry",
          "outFile": "point.html"
        },
        {
          "id": "RectangleGeometry",
          "type": "class",
          "superclass": "Geometry",
          "description": "Physics.geometry('rectangle')\n\nGeometry for rectangles.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rectGeo = Physics.geometry('rectangle', {\n    width: 30,\n    height: 40\n});\n```",
          "short_description": "Physics.geometry('rectangle')\n",
          "line": 22,
          "aliases": [],
          "children": [
            {
              "id": "RectangleGeometry#height",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "description": "The height",
              "short_description": "The height",
              "line": 51,
              "aliases": [],
              "children": [],
              "file": "src/geometries/rectangle.js",
              "name": "height",
              "name_prefix": "RectangleGeometry#",
              "path": "RectangleGeometry.prototype.height",
              "outFile": "rectangle.html#RectangleGeometry.prototype.height"
            },
            {
              "id": "RectangleGeometry#width",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "description": "The width",
              "short_description": "The width",
              "line": 45,
              "aliases": [],
              "children": [],
              "file": "src/geometries/rectangle.js",
              "name": "width",
              "name_prefix": "RectangleGeometry#",
              "path": "RectangleGeometry.prototype.width",
              "outFile": "rectangle.html#RectangleGeometry.prototype.width"
            }
          ],
          "file": "src/geometries/rectangle.js",
          "subclasses": [],
          "name": "RectangleGeometry",
          "path": "RectangleGeometry",
          "outFile": "rectangle.html"
        }
      ],
      "file": "src/core/geometry.js",
      "subclasses": [
        "CircleGeometry",
        "CompoundGeometry",
        "ConvexPolygonGeometry",
        "PointGeometry",
        "RectangleGeometry"
      ],
      "name": "Geometry",
      "path": "Geometry",
      "outFile": "geometry.html"
    },
    "Geometry#init": {
      "id": "Geometry#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration options passed by the factory\n\n     "
        }
      ],
      "internal": true,
      "description": "Initialization. Internal use.",
      "short_description": "Initialization. Internal use.",
      "line": 26,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry.js",
      "name": "init",
      "name_prefix": "Geometry#",
      "path": "Geometry.prototype.init",
      "outFile": "geometry.html#Geometry.prototype.init"
    },
    "Geometry#options": {
      "id": "Geometry#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The options to set as an object\n\n         "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The options\n\n         "
        }
      ],
      "related_to": "Physics.util.options",
      "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
      "short_description": "Set options on this instance.\n",
      "line": 44,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry.js",
      "name": "options",
      "name_prefix": "Geometry#",
      "path": "Geometry.prototype.options",
      "outFile": "geometry.html#Geometry.prototype.options"
    },
    "Geometry#aabb": {
      "id": "Geometry#aabb",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " The angle to rotate the geometry\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Bounding box values\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "angle",
          "types": [
            "Number"
          ],
          "description": " The angle to rotate the geometry\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " Bounding box values\n\n     "
        }
      ],
      "related_to": "Physics.aabb",
      "description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
      "short_description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
      "line": 57,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry.js",
      "name": "aabb",
      "name_prefix": "Geometry#",
      "path": "Geometry.prototype.aabb",
      "outFile": "geometry.html#Geometry.prototype.aabb"
    },
    "Geometry#getFarthestHullPoint": {
      "id": "Geometry#getFarthestHullPoint",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dir",
              "types": [
                "Physics.vector"
              ],
              "description": " Direction to look\n\n     "
            },
            {
              "name": "result",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to write result to. Speeds up calculations.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The farthest hull point in local coordinates\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dir",
          "types": [
            "Physics.vector"
          ],
          "description": " Direction to look\n\n     "
        },
        {
          "name": "result",
          "types": [
            "Physics.vector"
          ],
          "description": " A vector to write result to. Speeds up calculations.\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The farthest hull point in local coordinates\n\n     "
        }
      ],
      "description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nAssume all coordinates are relative to the geometry\ncentroid (IE: in the body frame).\n\nThis should take a direction vector then it should\ncalculate the location (in that frame of reference)\nof the point on the perimeter (hull) if you traveled\nin a straight line from the centroid in the provided\ndirection. The result should be returned/set just like\nit is in the other geometries.",
      "short_description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
      "line": 82,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry.js",
      "name": "getFarthestHullPoint",
      "name_prefix": "Geometry#",
      "path": "Geometry.prototype.getFarthestHullPoint",
      "outFile": "geometry.html#Geometry.prototype.getFarthestHullPoint"
    },
    "Geometry#getFarthestCorePoint": {
      "id": "Geometry#getFarthestCorePoint",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dir",
              "types": [
                "Physics.vector"
              ],
              "description": " Direction to look\n\n     "
            },
            {
              "name": "result",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " A vector to write result to. Speeds up calculations.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Physics.vector",
              "description": " The farthest hull point in local coordinates\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dir",
          "types": [
            "Physics.vector"
          ],
          "description": " Direction to look\n\n     "
        },
        {
          "name": "result",
          "types": [
            "Physics.vector"
          ],
          "description": " A vector to write result to. Speeds up calculations.\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Physics.vector",
          "description": " The farthest hull point in local coordinates\n\n     "
        }
      ],
      "related_to": "Geometry#getFarthestHullPoint",
      "description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nThis does almost the same thing as [[Geometry#getFarthestHullPoint]]\nbut shrinks the shape by subtracting \"margin\" from it.\nReturn the position of the point on the \"core\" shape.",
      "short_description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
      "line": 104,
      "aliases": [],
      "children": [],
      "file": "src/core/geometry.js",
      "name": "getFarthestCorePoint",
      "name_prefix": "Geometry#",
      "path": "Geometry.prototype.getFarthestCorePoint",
      "outFile": "geometry.html#Geometry.prototype.getFarthestCorePoint"
    },
    "Physics.integrator": {
      "id": "Physics.integrator",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the integrator to create\n\n "
            },
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
            }
          ],
          "returns": [
            {
              "type": "Integrator"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " The name of the integrator to create\n\n "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
        }
      ],
      "related_to": "Physics.util.decorator",
      "description": "Factory function for creating Integrators.\n\nVisit [the PhysicsJS wiki on Integrators](https://github.com/wellcaffeinated/PhysicsJS/wiki/Integrators)\nfor usage documentation.",
      "short_description": "Factory function for creating Integrators.\n",
      "line": 31,
      "aliases": [],
      "children": [
        {
          "id": "Integrator",
          "type": "class",
          "belongs_to": "Physics.integrator",
          "description": "The base class for integrators created by [[Physics.integrator]] factory function.",
          "short_description": "The base class for integrators created by [[Physics.integrator]] factory function.",
          "line": 38,
          "aliases": [],
          "children": [
            {
              "id": "Integrator#connect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to connect to\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to connect to\n\n     "
                }
              ],
              "description": "Connect to a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
              "short_description": "Connect to a world.\n",
              "line": 134,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "connect",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.connect",
              "outFile": "integrator.html#Integrator.prototype.connect"
            },
            {
              "id": "Integrator#disconnect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to disconnect from\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to disconnect from\n\n     "
                }
              ],
              "description": "Disconnect from a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
              "short_description": "Disconnect from a world.\n",
              "line": 145,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "disconnect",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.disconnect",
              "outFile": "integrator.html#Integrator.prototype.disconnect"
            },
            {
              "id": "Integrator#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ],
              "internal": true,
              "description": "Initialization. Internal use.",
              "short_description": "Initialization. Internal use.",
              "line": 45,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "init",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.init",
              "outFile": "integrator.html#Integrator.prototype.init"
            },
            {
              "id": "Integrator#integrate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ],
              "description": "Integrate bodies by timestep.\n\nWill emit `integrate:velocities` and `integrate:positions`\nevents on the world.",
              "short_description": "Integrate bodies by timestep.\n",
              "line": 44,
              "aliases": [],
              "children": [],
              "file": "src/integrators/velocity-verlet.js",
              "name": "integrate",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.integrate",
              "outFile": "velocity-verlet.html#Integrator.prototype.integrate"
            },
            {
              "id": "Integrator#integratePositions",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ],
              "description": "Just integrate the positions.\n\nCalled after [[Integrator#integrateVelocities]].\n\nShould be overridden when creating integrators.",
              "short_description": "Just integrate the positions.\n",
              "line": 172,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "integratePositions",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.integratePositions",
              "outFile": "integrator.html#Integrator.prototype.integratePositions"
            },
            {
              "id": "Integrator#integrateVelocities",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ],
              "description": "Just integrate the velocities.\n\nShould be overridden when creating integrators.",
              "short_description": "Just integrate the velocities.\n",
              "line": 156,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "integrateVelocities",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.integrateVelocities",
              "outFile": "integrator.html#Integrator.prototype.integrateVelocities"
            },
            {
              "id": "Integrator#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ],
              "related_to": "Physics.util.options",
              "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
              "short_description": "Set options on this instance.\n",
              "line": 63,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "options",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.options",
              "outFile": "integrator.html#Integrator.prototype.options"
            },
            {
              "id": "Integrator#setWorld",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
              "short_description": "Set which world to apply to.\n",
              "line": 75,
              "aliases": [],
              "children": [],
              "file": "src/core/integrator.js",
              "name": "setWorld",
              "name_prefix": "Integrator#",
              "path": "Integrator.prototype.setWorld",
              "outFile": "integrator.html#Integrator.prototype.setWorld"
            },
            {
              "id": "ImprovedEuler",
              "type": "class",
              "superclass": "Integrator",
              "description": "`Physics.integrator('improved-euler')`.\n\nThe improved euler integrator.",
              "short_description": "`Physics.integrator('improved-euler')`.\n",
              "line": 11,
              "aliases": [],
              "children": [],
              "file": "src/integrators/improved-euler.js",
              "subclasses": [],
              "name": "ImprovedEuler",
              "path": "ImprovedEuler",
              "outFile": "improved-euler.html"
            },
            {
              "id": "VelocityVerlet",
              "type": "class",
              "superclass": "Integrator",
              "description": "`Physics.integrator('velocity-verlet')`.\n\nThe velocity-verlet integrator.",
              "short_description": "`Physics.integrator('velocity-verlet')`.\n",
              "line": 26,
              "aliases": [],
              "children": [],
              "file": "src/integrators/velocity-verlet.js",
              "subclasses": [],
              "name": "VelocityVerlet",
              "path": "VelocityVerlet",
              "outFile": "velocity-verlet.html"
            },
            {
              "id": "Verlet",
              "type": "class",
              "superclass": "Integrator",
              "description": "`Physics.integrator('verlet')`.\n\nThe verlet integrator.",
              "short_description": "`Physics.integrator('verlet')`.\n",
              "line": 26,
              "aliases": [],
              "children": [],
              "file": "src/integrators/verlet.js",
              "subclasses": [],
              "name": "Verlet",
              "path": "Verlet",
              "outFile": "verlet.html"
            }
          ],
          "file": "src/core/integrator.js",
          "subclasses": [
            "ImprovedEuler",
            "VelocityVerlet",
            "Verlet"
          ],
          "name": "Integrator",
          "path": "Integrator",
          "outFile": "integrator.html"
        }
      ],
      "file": "src/core/integrator.js",
      "name": "integrator",
      "name_prefix": "Physics.",
      "path": "Physics.integrator",
      "outFile": "integrator.html#Physics.integrator"
    },
    "Integrator": {
      "id": "Integrator",
      "type": "class",
      "belongs_to": "Physics.integrator",
      "description": "The base class for integrators created by [[Physics.integrator]] factory function.",
      "short_description": "The base class for integrators created by [[Physics.integrator]] factory function.",
      "line": 38,
      "aliases": [],
      "children": [
        {
          "id": "Integrator#connect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to connect to\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to connect to\n\n     "
            }
          ],
          "description": "Connect to a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
          "short_description": "Connect to a world.\n",
          "line": 134,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "connect",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.connect",
          "outFile": "integrator.html#Integrator.prototype.connect"
        },
        {
          "id": "Integrator#disconnect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The world to disconnect from\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to disconnect from\n\n     "
            }
          ],
          "description": "Disconnect from a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
          "short_description": "Disconnect from a world.\n",
          "line": 145,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "disconnect",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.disconnect",
          "outFile": "integrator.html#Integrator.prototype.disconnect"
        },
        {
          "id": "Integrator#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ],
          "internal": true,
          "description": "Initialization. Internal use.",
          "short_description": "Initialization. Internal use.",
          "line": 45,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "init",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.init",
          "outFile": "integrator.html#Integrator.prototype.init"
        },
        {
          "id": "Integrator#integrate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ],
          "description": "Integrate bodies by timestep.\n\nWill emit `integrate:velocities` and `integrate:positions`\nevents on the world.",
          "short_description": "Integrate bodies by timestep.\n",
          "line": 44,
          "aliases": [],
          "children": [],
          "file": "src/integrators/velocity-verlet.js",
          "name": "integrate",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.integrate",
          "outFile": "velocity-verlet.html#Integrator.prototype.integrate"
        },
        {
          "id": "Integrator#integratePositions",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ],
          "description": "Just integrate the positions.\n\nCalled after [[Integrator#integrateVelocities]].\n\nShould be overridden when creating integrators.",
          "short_description": "Just integrate the positions.\n",
          "line": 172,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "integratePositions",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.integratePositions",
          "outFile": "integrator.html#Integrator.prototype.integratePositions"
        },
        {
          "id": "Integrator#integrateVelocities",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " List of bodies to integrate\n\n     "
                },
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " Timestep size\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ],
          "description": "Just integrate the velocities.\n\nShould be overridden when creating integrators.",
          "short_description": "Just integrate the velocities.\n",
          "line": 156,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "integrateVelocities",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.integrateVelocities",
          "outFile": "integrator.html#Integrator.prototype.integrateVelocities"
        },
        {
          "id": "Integrator#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n         "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ],
          "related_to": "Physics.util.options",
          "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
          "short_description": "Set options on this instance.\n",
          "line": 63,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "options",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.options",
          "outFile": "integrator.html#Integrator.prototype.options"
        },
        {
          "id": "Integrator#setWorld",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
          "short_description": "Set which world to apply to.\n",
          "line": 75,
          "aliases": [],
          "children": [],
          "file": "src/core/integrator.js",
          "name": "setWorld",
          "name_prefix": "Integrator#",
          "path": "Integrator.prototype.setWorld",
          "outFile": "integrator.html#Integrator.prototype.setWorld"
        },
        {
          "id": "ImprovedEuler",
          "type": "class",
          "superclass": "Integrator",
          "description": "`Physics.integrator('improved-euler')`.\n\nThe improved euler integrator.",
          "short_description": "`Physics.integrator('improved-euler')`.\n",
          "line": 11,
          "aliases": [],
          "children": [],
          "file": "src/integrators/improved-euler.js",
          "subclasses": [],
          "name": "ImprovedEuler",
          "path": "ImprovedEuler",
          "outFile": "improved-euler.html"
        },
        {
          "id": "VelocityVerlet",
          "type": "class",
          "superclass": "Integrator",
          "description": "`Physics.integrator('velocity-verlet')`.\n\nThe velocity-verlet integrator.",
          "short_description": "`Physics.integrator('velocity-verlet')`.\n",
          "line": 26,
          "aliases": [],
          "children": [],
          "file": "src/integrators/velocity-verlet.js",
          "subclasses": [],
          "name": "VelocityVerlet",
          "path": "VelocityVerlet",
          "outFile": "velocity-verlet.html"
        },
        {
          "id": "Verlet",
          "type": "class",
          "superclass": "Integrator",
          "description": "`Physics.integrator('verlet')`.\n\nThe verlet integrator.",
          "short_description": "`Physics.integrator('verlet')`.\n",
          "line": 26,
          "aliases": [],
          "children": [],
          "file": "src/integrators/verlet.js",
          "subclasses": [],
          "name": "Verlet",
          "path": "Verlet",
          "outFile": "verlet.html"
        }
      ],
      "file": "src/core/integrator.js",
      "subclasses": [
        "ImprovedEuler",
        "VelocityVerlet",
        "Verlet"
      ],
      "name": "Integrator",
      "path": "Integrator",
      "outFile": "integrator.html"
    },
    "Integrator#init": {
      "id": "Integrator#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration options passed by the factory\n\n     "
        }
      ],
      "internal": true,
      "description": "Initialization. Internal use.",
      "short_description": "Initialization. Internal use.",
      "line": 45,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "init",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.init",
      "outFile": "integrator.html#Integrator.prototype.init"
    },
    "Integrator#options": {
      "id": "Integrator#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n         "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n         "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The options to set as an object\n\n         "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The options\n\n         "
        }
      ],
      "related_to": "Physics.util.options",
      "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
      "short_description": "Set options on this instance.\n",
      "line": 63,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "options",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.options",
      "outFile": "integrator.html#Integrator.prototype.options"
    },
    "Integrator#setWorld": {
      "id": "Integrator#setWorld",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Object"
          ],
          "description": " The world (or null)\n\n     "
        }
      ],
      "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
      "short_description": "Set which world to apply to.\n",
      "line": 75,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "setWorld",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.setWorld",
      "outFile": "integrator.html#Integrator.prototype.setWorld"
    },
    "Integrator#integrate": {
      "id": "Integrator#integrate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " List of bodies to integrate\n\n     "
        },
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " Timestep size\n\n     "
        }
      ],
      "description": "Integrate bodies by timestep.\n\nWill emit `integrate:velocities` and `integrate:positions`\nevents on the world.",
      "short_description": "Integrate bodies by timestep.\n",
      "line": 44,
      "aliases": [],
      "children": [],
      "file": "src/integrators/velocity-verlet.js",
      "name": "integrate",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.integrate",
      "outFile": "velocity-verlet.html#Integrator.prototype.integrate"
    },
    "Integrator#connect": {
      "id": "Integrator#connect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to connect to\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Physics.world"
          ],
          "description": " The world to connect to\n\n     "
        }
      ],
      "description": "Connect to a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
      "short_description": "Connect to a world.\n",
      "line": 134,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "connect",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.connect",
      "outFile": "integrator.html#Integrator.prototype.connect"
    },
    "Integrator#disconnect": {
      "id": "Integrator#disconnect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The world to disconnect from\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Physics.world"
          ],
          "description": " The world to disconnect from\n\n     "
        }
      ],
      "description": "Disconnect from a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
      "short_description": "Disconnect from a world.\n",
      "line": 145,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "disconnect",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.disconnect",
      "outFile": "integrator.html#Integrator.prototype.disconnect"
    },
    "Integrator#integrateVelocities": {
      "id": "Integrator#integrateVelocities",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " List of bodies to integrate\n\n     "
        },
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " Timestep size\n\n     "
        }
      ],
      "description": "Just integrate the velocities.\n\nShould be overridden when creating integrators.",
      "short_description": "Just integrate the velocities.\n",
      "line": 156,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "integrateVelocities",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.integrateVelocities",
      "outFile": "integrator.html#Integrator.prototype.integrateVelocities"
    },
    "Integrator#integratePositions": {
      "id": "Integrator#integratePositions",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " List of bodies to integrate\n\n     "
            },
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " Timestep size\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " List of bodies to integrate\n\n     "
        },
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " Timestep size\n\n     "
        }
      ],
      "description": "Just integrate the positions.\n\nCalled after [[Integrator#integrateVelocities]].\n\nShould be overridden when creating integrators.",
      "short_description": "Just integrate the positions.\n",
      "line": 172,
      "aliases": [],
      "children": [],
      "file": "src/core/integrator.js",
      "name": "integratePositions",
      "name_prefix": "Integrator#",
      "path": "Integrator.prototype.integratePositions",
      "outFile": "integrator.html#Integrator.prototype.integratePositions"
    },
    "wrapRule": {
      "id": "wrapRule",
      "type": "method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "propVal"
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The test function\n\n "
            },
            {
              "name": "prop",
              "types": [
                "String"
              ],
              "description": " The property name to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The test function\n\n "
        },
        {
          "name": "prop",
          "types": [
            "String"
          ],
          "description": " The property name to test\n\n "
        },
        {
          "name": "propVal",
          "types": [
            "Mixed"
          ],
          "description": " The property value\n\n "
        }
      ],
      "hide": true,
      "description": "Get test function to test on sub property.",
      "short_description": "Get test function to test on sub property.",
      "line": 18,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "wrapRule",
      "path": "wrapRule",
      "outFile": "query.html#wrapRule"
    },
    "$eq": {
      "id": "$eq",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "toMatch",
              "types": [
                "Mixed"
              ],
              "description": " The value to match\n\n "
            },
            {
              "name": "prop",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " The property name to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "toMatch",
          "types": [
            "Mixed"
          ],
          "description": " The value to match\n\n "
        },
        {
          "name": "prop",
          "types": [
            "String"
          ],
          "description": " The property name to test\n\n "
        }
      ],
      "hide": true,
      "description": "Get an equality test function.",
      "short_description": "Get an equality test function.",
      "line": 31,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$eq",
      "path": "$eq",
      "outFile": "query.html#$eq"
    },
    "$ne": {
      "id": "$ne",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "toMatch",
              "types": [
                "Mixed"
              ],
              "description": " The value to match\n\n "
            },
            {
              "name": "prop",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " The property name to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "toMatch",
          "types": [
            "Mixed"
          ],
          "description": " The value to match\n\n "
        },
        {
          "name": "prop",
          "types": [
            "String"
          ],
          "description": " The property name to test\n\n "
        }
      ],
      "hide": true,
      "description": "Get a NOT equality test function.",
      "short_description": "Get a NOT equality test function.",
      "line": 82,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$ne",
      "path": "$ne",
      "outFile": "query.html#$ne"
    },
    "$in": {
      "id": "$in",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "toMatch",
              "types": [
                "Array"
              ],
              "description": " The array to match\n\n "
            },
            {
              "name": "prop",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " The property name to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "toMatch",
          "types": [
            "Array"
          ],
          "description": " The array to match\n\n "
        },
        {
          "name": "prop",
          "types": [
            "String"
          ],
          "description": " The property name to test\n\n "
        }
      ],
      "hide": true,
      "description": "Get a test function for matching ANY in array",
      "short_description": "Get a test function for matching ANY in array",
      "line": 96,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$in",
      "path": "$in",
      "outFile": "query.html#$in"
    },
    "$nin": {
      "id": "$nin",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "toMatch",
              "types": [
                "Array"
              ],
              "description": " The array to match\n\n "
            },
            {
              "name": "prop",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " The property name to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "toMatch",
          "types": [
            "Array"
          ],
          "description": " The array to match\n\n "
        },
        {
          "name": "prop",
          "types": [
            "String"
          ],
          "description": " The property name to test\n\n "
        }
      ],
      "hide": true,
      "description": "Get a test function for matching NOT ANY in array",
      "short_description": "Get a test function for matching NOT ANY in array",
      "line": 135,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$nin",
      "path": "$nin",
      "outFile": "query.html#$nin"
    },
    "$at": {
      "id": "$at",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "point",
              "types": [
                "Vectorish"
              ],
              "description": " The point to check\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "point",
          "types": [
            "Vectorish"
          ],
          "description": " The point to check\n\n "
        }
      ],
      "hide": true,
      "description": "Get a test function to match any body who's aabb intersects point",
      "short_description": "Get a test function to match any body who's aabb intersects point",
      "line": 148,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$at",
      "path": "$at",
      "outFile": "query.html#$at"
    },
    "$and": {
      "id": "$and",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "first",
              "types": [
                "Function"
              ],
              "description": " First function node. `first.next` should have the next function, and so on.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "first",
          "types": [
            "Function"
          ],
          "description": " First function node. `first.next` should have the next function, and so on.\n\n "
        }
      ],
      "hide": true,
      "description": "Get an AND test function.",
      "short_description": "Get an AND test function.",
      "line": 162,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$and",
      "path": "$and",
      "outFile": "query.html#$and"
    },
    "$or": {
      "id": "$or",
      "type": "utility",
      "signatures": [
        {
          "arguments": [
            {
              "name": "first",
              "types": [
                "Function"
              ],
              "description": " First function node. `first.next` should have the next function, and so on.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "first",
          "types": [
            "Function"
          ],
          "description": " First function node. `first.next` should have the next function, and so on.\n\n "
        }
      ],
      "hide": true,
      "description": "Get an OR test function.",
      "short_description": "Get an OR test function.",
      "line": 182,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "$or",
      "path": "$or",
      "outFile": "query.html#$or"
    },
    "Physics.query": {
      "id": "Physics.query",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " The mongodb-like search rules. (See description).\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The test function\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "rules",
          "types": [
            "Object"
          ],
          "description": " The mongodb-like search rules. (See description).\n\n "
        }
      ],
      "returns": [
        {
          "type": "Function",
          "description": " The test function\n\n "
        }
      ],
      "related_to": "Physics.world#find",
      "description": "Creates a function that can be used to perform tests on objects.\n\nThe test function will return a [[Boolean]]; `true` if the object matches the tests.\n\nQuery rules are mongodb-like. You can specify a hash of values to match like this:\n\n```javascript\n{\n    foo: 'bar',\n    baz: 2,\n    some: {\n        nested: 'value'\n    }\n}\n```\n\nAnd they will all need to match (it's an AND rule).\n\nYou can also use operators for more versatility. The operators you can use include:\n\n- $eq: Test if some property is equal to a value (this is done by default, and is thus redundant)\n- $ne: Test if some property is _NOT_ equal to a value\n- $in: Test if some value (or array of values) is one of the specified array of values\n- $nin: Test if some value (or array of values) is _NOT_ one of the specified array of values\n- $at: Test if a body's [[Physics.aabb]] includes specified point. It's a primative hit-test.\n\nExample:\n\n```javascript\nvar wheelsArray = [];\n\nvar queryFn = Physics.query({\n    name: 'circle', // only circles\n    $nin: wheelsArray, // not in the wheelsArray\n    labels: { $in: [ 'player', 'monster' ] } // that have player OR monster labels\n});\n\nvar obj = {\n    name: 'circle',\n    labels: [ 'round' ]\n};\n\nqueryFn( obj ); // -> false\n// give it a player tag\nobj.labels.push('player');\nqueryFn( obj ); // -> true\n// put it inside the wheelsArray\nwheelsArray.push( obj );\nqueryFn( obj ); // -> false\n```",
      "short_description": "Creates a function that can be used to perform tests on objects.\n",
      "line": 262,
      "aliases": [],
      "children": [],
      "file": "src/core/query.js",
      "name": "query",
      "name_prefix": "Physics.",
      "path": "Physics.query",
      "outFile": "query.html#Physics.query"
    },
    "Physics.renderer": {
      "id": "Physics.renderer",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the renderer to create\n\n "
            },
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
            }
          ],
          "returns": [
            {
              "type": "Renderer"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " The name of the renderer to create\n\n "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
        }
      ],
      "related_to": "Physics.util.decorator",
      "description": "Factory function for creating Renderers.\n\nVisit [the PhysicsJS wiki on Renderers](https://github.com/wellcaffeinated/PhysicsJS/wiki/Renderers)\nfor usage documentation.",
      "short_description": "Factory function for creating Renderers.\n",
      "line": 44,
      "aliases": [],
      "children": [
        {
          "id": "Renderer",
          "type": "class",
          "belongs_to": "Physics.renderer",
          "description": "The base class for renderers created by [[Physics.renderer]] factory function.",
          "short_description": "The base class for renderers created by [[Physics.renderer]] factory function.",
          "line": 51,
          "aliases": [],
          "children": [
            {
              "id": "Renderer#createView",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " geometry The geometry\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object",
                        "String"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Mixed",
                      "description": " Whatever the renderer needs to render the body.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " geometry The geometry\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object",
                    "String"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Mixed",
                  "description": " Whatever the renderer needs to render the body.\n\n     "
                }
              ],
              "description": "Create a view for the specified geometry.\n\nThe view is used to render the body. It is a cached version\nof the body that gets moved and rotated according to the simulation.\n\nThe styles are used to modify the appearance of the view.\nThey depend on the renderer.\n\nOverride this when creating renderers.",
              "short_description": "Create a view for the specified geometry.\n",
              "line": 182,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "createView",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.createView",
              "outFile": "renderer.html#Renderer.prototype.createView"
            },
            {
              "id": "Renderer#drawBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Object"
                      ],
                      "description": " The body to draw\n\n     "
                    },
                    {
                      "name": "view",
                      "types": [
                        "Object"
                      ],
                      "description": " The view for the body\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Object"
                  ],
                  "description": " The body to draw\n\n     "
                },
                {
                  "name": "view",
                  "types": [
                    "Object"
                  ],
                  "description": " The view for the body\n\n     "
                }
              ],
              "description": "Draw specified body using specified view.\n\nOverride this when creating renderers.",
              "short_description": "Draw specified body using specified view.\n",
              "line": 226,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "drawBody",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.drawBody",
              "outFile": "renderer.html#Renderer.prototype.drawBody"
            },
            {
              "id": "Renderer#drawMeta",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "meta",
                      "types": [
                        "Object"
                      ],
                      "description": " The meta data\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "meta",
                  "types": [
                    "Object"
                  ],
                  "description": " The meta data\n\n     "
                }
              ],
              "description": "Draw the meta data.\n\nThe meta data will look like this:\n\n```javascript\nmeta = {\n    fps: 60, // the frames per second\n    ipf: 4 // the number of iterations per frame\n};\n```\n\nOverride this when creating renderers.",
              "short_description": "Draw the meta data.\n",
              "line": 209,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "drawMeta",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.drawMeta",
              "outFile": "renderer.html#Renderer.prototype.drawMeta"
            },
            {
              "id": "Renderer#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ],
              "internal": true,
              "description": "Initialization. Internal use.",
              "short_description": "Initialization. Internal use.",
              "line": 58,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "init",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.init",
              "outFile": "renderer.html#Renderer.prototype.init"
            },
            {
              "id": "Renderer#render",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies in the world (by reference!)\n\n     "
                    },
                    {
                      "name": "meta",
                      "types": [
                        "Object"
                      ],
                      "description": " meta information\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies in the world (by reference!)\n\n     "
                },
                {
                  "name": "meta",
                  "types": [
                    "Object"
                  ],
                  "description": " meta information\n\n     "
                }
              ],
              "description": "Render the world bodies and meta. Called by world.render()",
              "short_description": "Render the world bodies and meta. Called by world.render()",
              "line": 129,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "render",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.render",
              "outFile": "renderer.html#Renderer.prototype.render"
            },
            {
              "id": "Renderer#resize",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "width",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The width in px\n\n     "
                    },
                    {
                      "name": "height",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The height in px\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width in px\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height in px\n\n     "
                }
              ],
              "description": "Set the dimensions of the renderer.\n\nIf no dimensions are specified it will auto resize.",
              "short_description": "Set the dimensions of the renderer.\n",
              "line": 87,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "resize",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.resize",
              "outFile": "renderer.html#Renderer.prototype.resize"
            },
            {
              "id": "Renderer#setWorld",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
              "short_description": "Set which world to apply to.\n",
              "line": 107,
              "aliases": [],
              "children": [],
              "file": "src/core/renderer.js",
              "name": "setWorld",
              "name_prefix": "Renderer#",
              "path": "Renderer.prototype.setWorld",
              "outFile": "renderer.html#Renderer.prototype.setWorld"
            },
            {
              "id": "CanvasRenderer",
              "type": "class",
              "superclass": "Renderer",
              "description": "Physics.renderer('canvas')\n\nRenderer that uses HTMLCanvas to render the world bodies.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50\n   }\n});\n```",
              "short_description": "Physics.renderer('canvas')\n",
              "line": 68,
              "aliases": [],
              "children": [
                {
                  "id": "CanvasRenderer#addLayer",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        },
                        {
                          "name": "el",
                          "optional": true,
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The canvas element to use for this layer\n\n     "
                        },
                        {
                          "name": "opts",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The options for this layer (see below)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Layer"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    },
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The canvas element to use for this layer\n\n     "
                    },
                    {
                      "name": "opts",
                      "types": [
                        "Object"
                      ],
                      "description": " The options for this layer (see below)\n\n     "
                    }
                  ],
                  "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
                  "short_description": "Create a new layer.\n",
                  "line": 226,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "addLayer",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.addLayer",
                  "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
                },
                {
                  "id": "CanvasRenderer#draw",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The shape to draw\n\n     "
                        },
                        {
                          "name": "styles",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        },
                        {
                          "name": "offset",
                          "optional": true,
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The offset from center\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The shape to draw\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    },
                    {
                      "name": "offset",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The offset from center\n\n     "
                    }
                  ],
                  "description": "Draw a geometry to a context.",
                  "short_description": "Draw a geometry to a context.",
                  "line": 630,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "draw",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.draw",
                  "outFile": "canvas.html#CanvasRenderer.prototype.draw"
                },
                {
                  "id": "CanvasRenderer#drawCircle",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "r",
                          "types": [
                            "Number"
                          ],
                          "description": " The circle radius\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "r",
                      "types": [
                        "Number"
                      ],
                      "description": " The circle radius\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ],
                  "description": "Draw a circle to specified canvas context.",
                  "short_description": "Draw a circle to specified canvas context.",
                  "line": 514,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "drawCircle",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.drawCircle",
                  "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
                },
                {
                  "id": "CanvasRenderer#drawLine",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "from",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The starting pt\n\n     "
                        },
                        {
                          "name": "to",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The ending pt\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "from",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The starting pt\n\n     "
                    },
                    {
                      "name": "to",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The ending pt\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ],
                  "description": "Draw a line onto specified canvas context.",
                  "short_description": "Draw a line onto specified canvas context.",
                  "line": 599,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "drawLine",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.drawLine",
                  "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
                },
                {
                  "id": "CanvasRenderer#drawPolygon",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "verts",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of [[Vectorish]] vertices\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "verts",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of [[Vectorish]] vertices\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ],
                  "description": "Draw a polygon to specified canvas context.",
                  "short_description": "Draw a polygon to specified canvas context.",
                  "line": 534,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "drawPolygon",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.drawPolygon",
                  "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
                },
                {
                  "id": "CanvasRenderer#drawRect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "width",
                          "types": [
                            "Number"
                          ],
                          "description": " The width\n\n     "
                        },
                        {
                          "name": "height",
                          "types": [
                            "Number"
                          ],
                          "description": " The height\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The width\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The height\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ],
                  "description": "Draw a rectangle to specified canvas context.",
                  "short_description": "Draw a rectangle to specified canvas context.",
                  "line": 575,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "drawRect",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.drawRect",
                  "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
                },
                {
                  "id": "CanvasRenderer#layer",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Layer"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    }
                  ],
                  "description": "Get the layer by id.",
                  "short_description": "Get the layer by id.",
                  "line": 198,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "layer",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.layer",
                  "outFile": "canvas.html#CanvasRenderer.prototype.layer"
                },
                {
                  "id": "CanvasRenderer#removeLayer",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "layer",
                          "types": [
                            "Layer"
                          ],
                          "description": " The layer\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    },
                    {
                      "name": "layer",
                      "types": [
                        "Layer"
                      ],
                      "description": " The layer\n\n     "
                    }
                  ],
                  "description": "Remove a layer.",
                  "short_description": "Remove a layer.",
                  "line": 444,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "removeLayer",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.removeLayer",
                  "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
                },
                {
                  "id": "CanvasRenderer#resize",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "width",
                          "types": [
                            "Number"
                          ],
                          "description": " The width\n\n     "
                        },
                        {
                          "name": "height",
                          "types": [
                            "Number"
                          ],
                          "description": " The height\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The width\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The height\n\n     "
                    }
                  ],
                  "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                  "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                  "line": 464,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "resize",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.resize",
                  "outFile": "canvas.html#CanvasRenderer.prototype.resize"
                },
                {
                  "id": "CanvasRenderer#setStyle",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "styles",
                          "types": [
                            "Object",
                            "String"
                          ],
                          "description": " Styles to set on the canvas context\n\n     "
                        },
                        {
                          "name": "ctx",
                          "optional": true,
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "styles",
                      "types": [
                        "Object",
                        "String"
                      ],
                      "description": " Styles to set on the canvas context\n\n     "
                    },
                    {
                      "name": "ctx",
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ],
                  "description": "Set styles on the specified canvas context (or main context).",
                  "short_description": "Set styles on the specified canvas context (or main context).",
                  "line": 488,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "setStyle",
                  "name_prefix": "CanvasRenderer#",
                  "path": "CanvasRenderer.prototype.setStyle",
                  "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
                },
                {
                  "id": "Layer",
                  "type": "class",
                  "belongs_to": "CanvasRenderer",
                  "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
                  "short_description": "A rendering layer for the canvas renderer.\n",
                  "line": 235,
                  "aliases": [],
                  "children": [
                    {
                      "id": "Layer#addToStack",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "arr",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of bodies to add\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        },
                        {
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " Body to add\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " Body to add\n\n         "
                        },
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies to add\n\n         "
                        }
                      ],
                      "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
                      "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
                      "line": 324,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "addToStack",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.addToStack",
                      "outFile": "canvas.html#Layer.prototype.addToStack"
                    },
                    {
                      "id": "Layer#bodies",
                      "type": "constant",
                      "signatures": [
                        {
                          "returns": [
                            {
                              "type": "Array"
                            }
                          ]
                        }
                      ],
                      "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
                      "short_description": "The Bodies this layer is rendering.\n",
                      "line": 300,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "bodies",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.bodies",
                      "outFile": "canvas.html#Layer.prototype.bodies"
                    },
                    {
                      "id": "Layer#el",
                      "type": "constant",
                      "signatures": [
                        {
                          "returns": [
                            {
                              "type": "HTMLElement"
                            }
                          ]
                        }
                      ],
                      "description": "The layer's Canvas",
                      "short_description": "The layer's Canvas",
                      "line": 251,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "el",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.el",
                      "outFile": "canvas.html#Layer.prototype.el"
                    },
                    {
                      "id": "Layer#id",
                      "type": "constant",
                      "signatures": [
                        {
                          "returns": [
                            {
                              "type": "String"
                            }
                          ]
                        }
                      ],
                      "description": "The layer's ID",
                      "short_description": "The layer's ID",
                      "line": 245,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "id",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.id",
                      "outFile": "canvas.html#Layer.prototype.id"
                    },
                    {
                      "id": "Layer#options",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "options",
                              "types": [
                                "Object"
                              ],
                              "description": " The options to set as an object\n\n                  "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " The options\n\n                  "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n                  "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n                  "
                        }
                      ],
                      "related_to": "Physics.util.options",
                      "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                      "short_description": "Set options on this layer.\n",
                      "line": 267,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "options",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.options",
                      "outFile": "canvas.html#Layer.prototype.options"
                    },
                    {
                      "id": "Layer#removeFromStack",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "arr",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of bodies to remove\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        },
                        {
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " Body to remove\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " Body to remove\n\n         "
                        },
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies to remove\n\n         "
                        }
                      ],
                      "description": "Remove body (bodies) from the rendering stack for this layer.",
                      "short_description": "Remove body (bodies) from the rendering stack for this layer.",
                      "line": 342,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "removeFromStack",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.removeFromStack",
                      "outFile": "canvas.html#Layer.prototype.removeFromStack"
                    },
                    {
                      "id": "Layer#render",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "clear",
                              "optional": true,
                              "types": [
                                "Boolean"
                              ],
                              "description": " Clear the canvas (default: `true`)\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "clear",
                          "types": [
                            "Boolean"
                          ],
                          "description": " Clear the canvas (default: `true`)\n\n         "
                        }
                      ],
                      "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
                      "short_description": "Render the bodies in this layer's stack.\n",
                      "line": 373,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "render",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.render",
                      "outFile": "canvas.html#Layer.prototype.render"
                    },
                    {
                      "id": "Layer#reset",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "arr",
                              "optional": true,
                              "types": [
                                "Array"
                              ],
                              "description": " Array to replace the current stack of Bodies.\n\n         "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array to replace the current stack of Bodies.\n\n         "
                        }
                      ],
                      "description": "Reset the stack.",
                      "short_description": "Reset the stack.",
                      "line": 308,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "reset",
                      "name_prefix": "Layer#",
                      "path": "Layer.prototype.reset",
                      "outFile": "canvas.html#Layer.prototype.reset"
                    }
                  ],
                  "file": "src/renderers/canvas.js",
                  "subclasses": [],
                  "name": "Layer",
                  "path": "Layer",
                  "outFile": "canvas.html"
                }
              ],
              "file": "src/renderers/canvas.js",
              "subclasses": [],
              "name": "CanvasRenderer",
              "path": "CanvasRenderer",
              "outFile": "canvas.html"
            },
            {
              "id": "DebugRenderer",
              "type": "class",
              "superclass": "Renderer",
              "description": "Physics.renderer('debug')\n\nExtends canvas renderer with special debugging functionality.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n- drawAABB: whether or not to draw bounding boxes. (default: `true`)\n- drawRealPosition: whether or not to draw the non-interpolated position of bodies. (default: `false`)\n- drawIntervals: whether or not to draw the broadphase (sweep-prune) intervals. (default: `false`)\n- drawContacts: whether or not to draw contact points. (default: `false`)\n- drawSleepState: whether or not to highlight sleeping bodies. (default: `false`)\n- drawBodyState: whether or not to show body position and velocity. (default: `false`)\n- aabbColor: the color of AABBs\n- realBodyStyle: styles used to draw the image of the body at its true non-interpolated position\n- intervalMinColor: color of interval minima\n- intervalMaxColor: color of interval maxima\n- mtvColor: color of minimum transit vector for contacts (overlaps)\n- contactColor: color of contact points\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```",
              "short_description": "Physics.renderer('debug')\n",
              "line": 52,
              "aliases": [],
              "children": [],
              "file": "src/renderers/debug.js",
              "subclasses": [],
              "name": "DebugRenderer",
              "path": "DebugRenderer",
              "outFile": "debug.html"
            },
            {
              "id": "DomRenderer",
              "type": "class",
              "superclass": "Renderer",
              "description": "Physics.renderer('dom')\n\nRenderer that manipulates DOM elements according to the physics simulation. Very primative...",
              "short_description": "Physics.renderer('dom')\n",
              "line": 8,
              "aliases": [],
              "children": [
                {
                  "id": "DomRenderer#attach",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "HTMLElement",
                            "Object"
                          ],
                          "description": " DOM node or event data (`data.body`)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "HTMLElement",
                        "Object"
                      ],
                      "description": " DOM node or event data (`data.body`)\n\n     "
                    }
                  ],
                  "description": "Event callback to attach a node to the viewport",
                  "short_description": "Event callback to attach a node to the viewport",
                  "line": 242,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/dom.js",
                  "name": "attach",
                  "name_prefix": "DomRenderer#",
                  "path": "DomRenderer.prototype.attach",
                  "outFile": "dom.html#DomRenderer.prototype.attach"
                },
                {
                  "id": "DomRenderer#circleProperties",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Set dom element style properties for a circle.",
                  "short_description": "Set dom element style properties for a circle.",
                  "line": 136,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/dom.js",
                  "name": "circleProperties",
                  "name_prefix": "DomRenderer#",
                  "path": "DomRenderer.prototype.circleProperties",
                  "outFile": "dom.html#DomRenderer.prototype.circleProperties"
                },
                {
                  "id": "DomRenderer#detach",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "HTMLElement",
                            "Object"
                          ],
                          "description": " DOM node or event data (`data.body`)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "HTMLElement",
                        "Object"
                      ],
                      "description": " DOM node or event data (`data.body`)\n\n     "
                    }
                  ],
                  "description": "Event callback to detach a node from the DOM",
                  "short_description": "Event callback to detach a node from the DOM",
                  "line": 221,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/dom.js",
                  "name": "detach",
                  "name_prefix": "DomRenderer#",
                  "path": "DomRenderer.prototype.detach",
                  "outFile": "dom.html#DomRenderer.prototype.detach"
                },
                {
                  "id": "DomRenderer#pointProperties",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Set dom element style properties for a point.",
                  "short_description": "Set dom element style properties for a point.",
                  "line": 120,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/dom.js",
                  "name": "pointProperties",
                  "name_prefix": "DomRenderer#",
                  "path": "DomRenderer.prototype.pointProperties",
                  "outFile": "dom.html#DomRenderer.prototype.pointProperties"
                },
                {
                  "id": "DomRenderer#rectangleProperties",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Set dom element style properties for a rectangle.",
                  "short_description": "Set dom element style properties for a rectangle.",
                  "line": 154,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/dom.js",
                  "name": "rectangleProperties",
                  "name_prefix": "DomRenderer#",
                  "path": "DomRenderer.prototype.rectangleProperties",
                  "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
                }
              ],
              "file": "src/renderers/dom.js",
              "subclasses": [],
              "name": "DomRenderer",
              "path": "DomRenderer",
              "outFile": "dom.html"
            },
            {
              "id": "PixiRenderer",
              "type": "class",
              "superclass": "Renderer",
              "description": "Physics.renderer('pixi')\n\nRenderer that uses the PIXI.js library. [Documentation can be found here](https://github.com/wellcaffeinated/PhysicsJS/wiki/PIXI-Renderer).\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n   // Defines the default canvas colour\n   'color': '0x66FF99',\n\n   'circle' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C',\n       strokeAlpha: 1,\n       fillAlpha: 1\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '0x542437',\n       lineWidth: 1,\n       fillStyle: '0x542437',\n       angleIndicator: '0xFFFFFF'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50,\n       anchor: { x: 0.5, y: 0.5 }\n   }\n});\n```",
              "short_description": "Physics.renderer('pixi')\n",
              "line": 76,
              "aliases": [],
              "children": [
                {
                  "id": "PixiRenderer#attach",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "PIXI.Graphics",
                            "Object"
                          ],
                          "description": " Graphics object or event data (`data.body`)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "PIXI.Graphics",
                        "Object"
                      ],
                      "description": " Graphics object or event data (`data.body`)\n\n     "
                    }
                  ],
                  "description": "Event callback to attach a child to the stage",
                  "short_description": "Event callback to attach a child to the stage",
                  "line": 239,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "attach",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.attach",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
                },
                {
                  "id": "PixiRenderer#centerAnchor",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "view",
                          "types": [
                            "PIXI.DisplayObject"
                          ],
                          "description": " The view to center\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "view",
                      "types": [
                        "PIXI.DisplayObject"
                      ],
                      "description": " The view to center\n\n     "
                    }
                  ],
                  "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                  "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                  "line": 622,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "centerAnchor",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.centerAnchor",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
                },
                {
                  "id": "PixiRenderer#createCircle",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "r",
                          "types": [
                            "Number"
                          ],
                          "description": " The circle radius\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a circle.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "r",
                      "types": [
                        "Number"
                      ],
                      "description": " The circle radius\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a circle.\n\n     "
                    }
                  ],
                  "description": "Create a circle for use in PIXI stage",
                  "short_description": "Create a circle for use in PIXI stage",
                  "line": 362,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "createCircle",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.createCircle",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
                },
                {
                  "id": "PixiRenderer#createDisplay",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "type",
                          "types": [
                            "String"
                          ],
                          "description": " The type of PIXI.DisplayObject to make\n\n     "
                        },
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " Options to apply to the view.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.DisplayObject",
                          "description": " An object that is renderable.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "type",
                      "types": [
                        "String"
                      ],
                      "description": " The type of PIXI.DisplayObject to make\n\n     "
                    },
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " Options to apply to the view.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.DisplayObject",
                      "description": " An object that is renderable.\n\n     "
                    }
                  ],
                  "description": "Create a PIXI sprite or movie clip.",
                  "short_description": "Create a PIXI sprite or movie clip.",
                  "line": 563,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "createDisplay",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.createDisplay",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
                },
                {
                  "id": "PixiRenderer#createLine",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "from",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " Starting point\n\n     "
                        },
                        {
                          "name": "to",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " Ending point\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a polygon.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "from",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Starting point\n\n     "
                    },
                    {
                      "name": "to",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Ending point\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a polygon.\n\n     "
                    }
                  ],
                  "description": "Create a line for use in PIXI stage",
                  "short_description": "Create a line for use in PIXI stage",
                  "line": 441,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "createLine",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.createLine",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
                },
                {
                  "id": "PixiRenderer#createPolygon",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "verts",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of [[Vectorish]] vertices\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a polygon.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "verts",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of [[Vectorish]] vertices\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a polygon.\n\n     "
                    }
                  ],
                  "description": "Create a polygon for use in PIXI stage",
                  "short_description": "Create a polygon for use in PIXI stage",
                  "line": 399,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "createPolygon",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.createPolygon",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
                },
                {
                  "id": "PixiRenderer#createRect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "r",
                          "types": [
                            "Number"
                          ],
                          "description": " The rectangle width\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Number"
                          ],
                          "description": " The rectangle height\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a circle.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The rectangle width\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The rectangle height\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a circle.\n\n     "
                    }
                  ],
                  "description": "Create a rectangle for use in PIXI stage",
                  "short_description": "Create a rectangle for use in PIXI stage",
                  "line": 382,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "createRect",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.createRect",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
                },
                {
                  "id": "PixiRenderer#detach",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "PIXI.Graphics",
                            "Object"
                          ],
                          "description": " Graphics object or event data (`data.body`)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "PIXI.Graphics",
                        "Object"
                      ],
                      "description": " Graphics object or event data (`data.body`)\n\n     "
                    }
                  ],
                  "description": "Event callback to detach a child from the stage",
                  "short_description": "Event callback to detach a child from the stage",
                  "line": 220,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "detach",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.detach",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
                },
                {
                  "id": "PixiRenderer#drawBody",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " The body to draw\n\n     "
                        },
                        {
                          "name": "view",
                          "types": [
                            "DisplayObject"
                          ],
                          "description": " The pixi display object\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The body to draw\n\n     "
                    },
                    {
                      "name": "view",
                      "types": [
                        "DisplayObject"
                      ],
                      "description": " The pixi display object\n\n     "
                    }
                  ],
                  "description": "Draw a PIXI.DisplayObject to the stage.",
                  "short_description": "Draw a PIXI.DisplayObject to the stage.",
                  "line": 287,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "drawBody",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.drawBody",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
                },
                {
                  "id": "PixiRenderer#loadSpriteSheets",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "assetsToLoad",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of spritesheets to load\n\n     "
                        },
                        {
                          "name": "callback",
                          "types": [
                            "Function"
                          ],
                          "description": " Function to call when loading is complete\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "assetsToLoad",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of spritesheets to load\n\n     "
                    },
                    {
                      "name": "callback",
                      "types": [
                        "Function"
                      ],
                      "description": " Function to call when loading is complete\n\n     "
                    }
                  ],
                  "description": "Loads textures defined in a spritesheet",
                  "short_description": "Loads textures defined in a spritesheet",
                  "line": 259,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "loadSpriteSheets",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.loadSpriteSheets",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
                },
                {
                  "id": "PixiRenderer#setStyles",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "graphics",
                          "types": [
                            "PIXI.Graphics"
                          ],
                          "description": " The graphics object to set styles on\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "graphics",
                      "types": [
                        "PIXI.Graphics"
                      ],
                      "description": " The graphics object to set styles on\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object\n\n     "
                    }
                  ],
                  "description": "Set styles on pixi graphics object",
                  "short_description": "Set styles on pixi graphics object",
                  "line": 322,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/pixi-renderer.js",
                  "name": "setStyles",
                  "name_prefix": "PixiRenderer#",
                  "path": "PixiRenderer.prototype.setStyles",
                  "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
                }
              ],
              "file": "src/renderers/pixi-renderer.js",
              "subclasses": [],
              "name": "PixiRenderer",
              "path": "PixiRenderer",
              "outFile": "pixi-renderer.html"
            }
          ],
          "file": "src/core/renderer.js",
          "subclasses": [
            "CanvasRenderer",
            "DebugRenderer",
            "DomRenderer",
            "PixiRenderer"
          ],
          "name": "Renderer",
          "path": "Renderer",
          "outFile": "renderer.html"
        }
      ],
      "file": "src/core/renderer.js",
      "name": "renderer",
      "name_prefix": "Physics.",
      "path": "Physics.renderer",
      "outFile": "renderer.html#Physics.renderer"
    },
    "Renderer": {
      "id": "Renderer",
      "type": "class",
      "belongs_to": "Physics.renderer",
      "description": "The base class for renderers created by [[Physics.renderer]] factory function.",
      "short_description": "The base class for renderers created by [[Physics.renderer]] factory function.",
      "line": 51,
      "aliases": [],
      "children": [
        {
          "id": "Renderer#createView",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " geometry The geometry\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object",
                    "String"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Mixed",
                  "description": " Whatever the renderer needs to render the body.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " geometry The geometry\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object",
                "String"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Mixed",
              "description": " Whatever the renderer needs to render the body.\n\n     "
            }
          ],
          "description": "Create a view for the specified geometry.\n\nThe view is used to render the body. It is a cached version\nof the body that gets moved and rotated according to the simulation.\n\nThe styles are used to modify the appearance of the view.\nThey depend on the renderer.\n\nOverride this when creating renderers.",
          "short_description": "Create a view for the specified geometry.\n",
          "line": 182,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "createView",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.createView",
          "outFile": "renderer.html#Renderer.prototype.createView"
        },
        {
          "id": "Renderer#drawBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Object"
                  ],
                  "description": " The body to draw\n\n     "
                },
                {
                  "name": "view",
                  "types": [
                    "Object"
                  ],
                  "description": " The view for the body\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Object"
              ],
              "description": " The body to draw\n\n     "
            },
            {
              "name": "view",
              "types": [
                "Object"
              ],
              "description": " The view for the body\n\n     "
            }
          ],
          "description": "Draw specified body using specified view.\n\nOverride this when creating renderers.",
          "short_description": "Draw specified body using specified view.\n",
          "line": 226,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "drawBody",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.drawBody",
          "outFile": "renderer.html#Renderer.prototype.drawBody"
        },
        {
          "id": "Renderer#drawMeta",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "meta",
                  "types": [
                    "Object"
                  ],
                  "description": " The meta data\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "meta",
              "types": [
                "Object"
              ],
              "description": " The meta data\n\n     "
            }
          ],
          "description": "Draw the meta data.\n\nThe meta data will look like this:\n\n```javascript\nmeta = {\n    fps: 60, // the frames per second\n    ipf: 4 // the number of iterations per frame\n};\n```\n\nOverride this when creating renderers.",
          "short_description": "Draw the meta data.\n",
          "line": 209,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "drawMeta",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.drawMeta",
          "outFile": "renderer.html#Renderer.prototype.drawMeta"
        },
        {
          "id": "Renderer#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration options passed by the factory\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ],
          "internal": true,
          "description": "Initialization. Internal use.",
          "short_description": "Initialization. Internal use.",
          "line": 58,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "init",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.init",
          "outFile": "renderer.html#Renderer.prototype.init"
        },
        {
          "id": "Renderer#render",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "bodies",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies in the world (by reference!)\n\n     "
                },
                {
                  "name": "meta",
                  "types": [
                    "Object"
                  ],
                  "description": " meta information\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " Array of bodies in the world (by reference!)\n\n     "
            },
            {
              "name": "meta",
              "types": [
                "Object"
              ],
              "description": " meta information\n\n     "
            }
          ],
          "description": "Render the world bodies and meta. Called by world.render()",
          "short_description": "Render the world bodies and meta. Called by world.render()",
          "line": 129,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "render",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.render",
          "outFile": "renderer.html#Renderer.prototype.render"
        },
        {
          "id": "Renderer#resize",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "width",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The width in px\n\n     "
                },
                {
                  "name": "height",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The height in px\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width in px\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height in px\n\n     "
            }
          ],
          "description": "Set the dimensions of the renderer.\n\nIf no dimensions are specified it will auto resize.",
          "short_description": "Set the dimensions of the renderer.\n",
          "line": 87,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "resize",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.resize",
          "outFile": "renderer.html#Renderer.prototype.resize"
        },
        {
          "id": "Renderer#setWorld",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "world",
                  "types": [
                    "Object"
                  ],
                  "description": " The world (or null)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
          "short_description": "Set which world to apply to.\n",
          "line": 107,
          "aliases": [],
          "children": [],
          "file": "src/core/renderer.js",
          "name": "setWorld",
          "name_prefix": "Renderer#",
          "path": "Renderer.prototype.setWorld",
          "outFile": "renderer.html#Renderer.prototype.setWorld"
        },
        {
          "id": "CanvasRenderer",
          "type": "class",
          "superclass": "Renderer",
          "description": "Physics.renderer('canvas')\n\nRenderer that uses HTMLCanvas to render the world bodies.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50\n   }\n});\n```",
          "short_description": "Physics.renderer('canvas')\n",
          "line": 68,
          "aliases": [],
          "children": [
            {
              "id": "CanvasRenderer#addLayer",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    },
                    {
                      "name": "el",
                      "optional": true,
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The canvas element to use for this layer\n\n     "
                    },
                    {
                      "name": "opts",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The options for this layer (see below)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Layer"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                },
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The canvas element to use for this layer\n\n     "
                },
                {
                  "name": "opts",
                  "types": [
                    "Object"
                  ],
                  "description": " The options for this layer (see below)\n\n     "
                }
              ],
              "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
              "short_description": "Create a new layer.\n",
              "line": 226,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "addLayer",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.addLayer",
              "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
            },
            {
              "id": "CanvasRenderer#draw",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The shape to draw\n\n     "
                    },
                    {
                      "name": "styles",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    },
                    {
                      "name": "offset",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The offset from center\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The shape to draw\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                },
                {
                  "name": "offset",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The offset from center\n\n     "
                }
              ],
              "description": "Draw a geometry to a context.",
              "short_description": "Draw a geometry to a context.",
              "line": 630,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "draw",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.draw",
              "outFile": "canvas.html#CanvasRenderer.prototype.draw"
            },
            {
              "id": "CanvasRenderer#drawCircle",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "r",
                      "types": [
                        "Number"
                      ],
                      "description": " The circle radius\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "r",
                  "types": [
                    "Number"
                  ],
                  "description": " The circle radius\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ],
              "description": "Draw a circle to specified canvas context.",
              "short_description": "Draw a circle to specified canvas context.",
              "line": 514,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "drawCircle",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.drawCircle",
              "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
            },
            {
              "id": "CanvasRenderer#drawLine",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "from",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The starting pt\n\n     "
                    },
                    {
                      "name": "to",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The ending pt\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "from",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The starting pt\n\n     "
                },
                {
                  "name": "to",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The ending pt\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ],
              "description": "Draw a line onto specified canvas context.",
              "short_description": "Draw a line onto specified canvas context.",
              "line": 599,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "drawLine",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.drawLine",
              "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
            },
            {
              "id": "CanvasRenderer#drawPolygon",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "verts",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of [[Vectorish]] vertices\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "verts",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of [[Vectorish]] vertices\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ],
              "description": "Draw a polygon to specified canvas context.",
              "short_description": "Draw a polygon to specified canvas context.",
              "line": 534,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "drawPolygon",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.drawPolygon",
              "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
            },
            {
              "id": "CanvasRenderer#drawRect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The width\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The height\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ],
              "description": "Draw a rectangle to specified canvas context.",
              "short_description": "Draw a rectangle to specified canvas context.",
              "line": 575,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "drawRect",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.drawRect",
              "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
            },
            {
              "id": "CanvasRenderer#layer",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Layer"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                }
              ],
              "description": "Get the layer by id.",
              "short_description": "Get the layer by id.",
              "line": 198,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "layer",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.layer",
              "outFile": "canvas.html#CanvasRenderer.prototype.layer"
            },
            {
              "id": "CanvasRenderer#removeLayer",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "id",
                      "types": [
                        "String"
                      ],
                      "description": " The id for the layer\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "layer",
                      "types": [
                        "Layer"
                      ],
                      "description": " The layer\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                },
                {
                  "name": "layer",
                  "types": [
                    "Layer"
                  ],
                  "description": " The layer\n\n     "
                }
              ],
              "description": "Remove a layer.",
              "short_description": "Remove a layer.",
              "line": 444,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "removeLayer",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.removeLayer",
              "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
            },
            {
              "id": "CanvasRenderer#resize",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The width\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The height\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height\n\n     "
                }
              ],
              "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
              "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
              "line": 464,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "resize",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.resize",
              "outFile": "canvas.html#CanvasRenderer.prototype.resize"
            },
            {
              "id": "CanvasRenderer#setStyle",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "styles",
                      "types": [
                        "Object",
                        "String"
                      ],
                      "description": " Styles to set on the canvas context\n\n     "
                    },
                    {
                      "name": "ctx",
                      "optional": true,
                      "types": [
                        "Canvas2DContext"
                      ],
                      "description": " The canvas context\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "styles",
                  "types": [
                    "Object",
                    "String"
                  ],
                  "description": " Styles to set on the canvas context\n\n     "
                },
                {
                  "name": "ctx",
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ],
              "description": "Set styles on the specified canvas context (or main context).",
              "short_description": "Set styles on the specified canvas context (or main context).",
              "line": 488,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "setStyle",
              "name_prefix": "CanvasRenderer#",
              "path": "CanvasRenderer.prototype.setStyle",
              "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
            },
            {
              "id": "Layer",
              "type": "class",
              "belongs_to": "CanvasRenderer",
              "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
              "short_description": "A rendering layer for the canvas renderer.\n",
              "line": 235,
              "aliases": [],
              "children": [
                {
                  "id": "Layer#addToStack",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies to add\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " Body to add\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " Body to add\n\n         "
                    },
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to add\n\n         "
                    }
                  ],
                  "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
                  "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
                  "line": 324,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "addToStack",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.addToStack",
                  "outFile": "canvas.html#Layer.prototype.addToStack"
                },
                {
                  "id": "Layer#bodies",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "Array"
                        }
                      ]
                    }
                  ],
                  "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
                  "short_description": "The Bodies this layer is rendering.\n",
                  "line": 300,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "bodies",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.bodies",
                  "outFile": "canvas.html#Layer.prototype.bodies"
                },
                {
                  "id": "Layer#el",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "HTMLElement"
                        }
                      ]
                    }
                  ],
                  "description": "The layer's Canvas",
                  "short_description": "The layer's Canvas",
                  "line": 251,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "el",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.el",
                  "outFile": "canvas.html#Layer.prototype.el"
                },
                {
                  "id": "Layer#id",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "String"
                        }
                      ]
                    }
                  ],
                  "description": "The layer's ID",
                  "short_description": "The layer's ID",
                  "line": 245,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "id",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.id",
                  "outFile": "canvas.html#Layer.prototype.id"
                },
                {
                  "id": "Layer#options",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n                  "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n                  "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n                  "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n                  "
                    }
                  ],
                  "related_to": "Physics.util.options",
                  "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                  "short_description": "Set options on this layer.\n",
                  "line": 267,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "options",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.options",
                  "outFile": "canvas.html#Layer.prototype.options"
                },
                {
                  "id": "Layer#removeFromStack",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies to remove\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " Body to remove\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " Body to remove\n\n         "
                    },
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to remove\n\n         "
                    }
                  ],
                  "description": "Remove body (bodies) from the rendering stack for this layer.",
                  "short_description": "Remove body (bodies) from the rendering stack for this layer.",
                  "line": 342,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "removeFromStack",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.removeFromStack",
                  "outFile": "canvas.html#Layer.prototype.removeFromStack"
                },
                {
                  "id": "Layer#render",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "clear",
                          "optional": true,
                          "types": [
                            "Boolean"
                          ],
                          "description": " Clear the canvas (default: `true`)\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "clear",
                      "types": [
                        "Boolean"
                      ],
                      "description": " Clear the canvas (default: `true`)\n\n         "
                    }
                  ],
                  "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
                  "short_description": "Render the bodies in this layer's stack.\n",
                  "line": 373,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "render",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.render",
                  "outFile": "canvas.html#Layer.prototype.render"
                },
                {
                  "id": "Layer#reset",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "arr",
                          "optional": true,
                          "types": [
                            "Array"
                          ],
                          "description": " Array to replace the current stack of Bodies.\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array to replace the current stack of Bodies.\n\n         "
                    }
                  ],
                  "description": "Reset the stack.",
                  "short_description": "Reset the stack.",
                  "line": 308,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/canvas.js",
                  "name": "reset",
                  "name_prefix": "Layer#",
                  "path": "Layer.prototype.reset",
                  "outFile": "canvas.html#Layer.prototype.reset"
                }
              ],
              "file": "src/renderers/canvas.js",
              "subclasses": [],
              "name": "Layer",
              "path": "Layer",
              "outFile": "canvas.html"
            }
          ],
          "file": "src/renderers/canvas.js",
          "subclasses": [],
          "name": "CanvasRenderer",
          "path": "CanvasRenderer",
          "outFile": "canvas.html"
        },
        {
          "id": "DebugRenderer",
          "type": "class",
          "superclass": "Renderer",
          "description": "Physics.renderer('debug')\n\nExtends canvas renderer with special debugging functionality.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n- drawAABB: whether or not to draw bounding boxes. (default: `true`)\n- drawRealPosition: whether or not to draw the non-interpolated position of bodies. (default: `false`)\n- drawIntervals: whether or not to draw the broadphase (sweep-prune) intervals. (default: `false`)\n- drawContacts: whether or not to draw contact points. (default: `false`)\n- drawSleepState: whether or not to highlight sleeping bodies. (default: `false`)\n- drawBodyState: whether or not to show body position and velocity. (default: `false`)\n- aabbColor: the color of AABBs\n- realBodyStyle: styles used to draw the image of the body at its true non-interpolated position\n- intervalMinColor: color of interval minima\n- intervalMaxColor: color of interval maxima\n- mtvColor: color of minimum transit vector for contacts (overlaps)\n- contactColor: color of contact points\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```",
          "short_description": "Physics.renderer('debug')\n",
          "line": 52,
          "aliases": [],
          "children": [],
          "file": "src/renderers/debug.js",
          "subclasses": [],
          "name": "DebugRenderer",
          "path": "DebugRenderer",
          "outFile": "debug.html"
        },
        {
          "id": "DomRenderer",
          "type": "class",
          "superclass": "Renderer",
          "description": "Physics.renderer('dom')\n\nRenderer that manipulates DOM elements according to the physics simulation. Very primative...",
          "short_description": "Physics.renderer('dom')\n",
          "line": 8,
          "aliases": [],
          "children": [
            {
              "id": "DomRenderer#attach",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "HTMLElement",
                        "Object"
                      ],
                      "description": " DOM node or event data (`data.body`)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "HTMLElement",
                    "Object"
                  ],
                  "description": " DOM node or event data (`data.body`)\n\n     "
                }
              ],
              "description": "Event callback to attach a node to the viewport",
              "short_description": "Event callback to attach a node to the viewport",
              "line": 242,
              "aliases": [],
              "children": [],
              "file": "src/renderers/dom.js",
              "name": "attach",
              "name_prefix": "DomRenderer#",
              "path": "DomRenderer.prototype.attach",
              "outFile": "dom.html#DomRenderer.prototype.attach"
            },
            {
              "id": "DomRenderer#circleProperties",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ],
              "internal": true,
              "description": "Set dom element style properties for a circle.",
              "short_description": "Set dom element style properties for a circle.",
              "line": 136,
              "aliases": [],
              "children": [],
              "file": "src/renderers/dom.js",
              "name": "circleProperties",
              "name_prefix": "DomRenderer#",
              "path": "DomRenderer.prototype.circleProperties",
              "outFile": "dom.html#DomRenderer.prototype.circleProperties"
            },
            {
              "id": "DomRenderer#detach",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "HTMLElement",
                        "Object"
                      ],
                      "description": " DOM node or event data (`data.body`)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "HTMLElement",
                    "Object"
                  ],
                  "description": " DOM node or event data (`data.body`)\n\n     "
                }
              ],
              "description": "Event callback to detach a node from the DOM",
              "short_description": "Event callback to detach a node from the DOM",
              "line": 221,
              "aliases": [],
              "children": [],
              "file": "src/renderers/dom.js",
              "name": "detach",
              "name_prefix": "DomRenderer#",
              "path": "DomRenderer.prototype.detach",
              "outFile": "dom.html#DomRenderer.prototype.detach"
            },
            {
              "id": "DomRenderer#pointProperties",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ],
              "internal": true,
              "description": "Set dom element style properties for a point.",
              "short_description": "Set dom element style properties for a point.",
              "line": 120,
              "aliases": [],
              "children": [],
              "file": "src/renderers/dom.js",
              "name": "pointProperties",
              "name_prefix": "DomRenderer#",
              "path": "DomRenderer.prototype.pointProperties",
              "outFile": "dom.html#DomRenderer.prototype.pointProperties"
            },
            {
              "id": "DomRenderer#rectangleProperties",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "el",
                      "types": [
                        "HTMLElement"
                      ],
                      "description": " The element\n\n     "
                    },
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " The body's geometry\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ],
              "internal": true,
              "description": "Set dom element style properties for a rectangle.",
              "short_description": "Set dom element style properties for a rectangle.",
              "line": 154,
              "aliases": [],
              "children": [],
              "file": "src/renderers/dom.js",
              "name": "rectangleProperties",
              "name_prefix": "DomRenderer#",
              "path": "DomRenderer.prototype.rectangleProperties",
              "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
            }
          ],
          "file": "src/renderers/dom.js",
          "subclasses": [],
          "name": "DomRenderer",
          "path": "DomRenderer",
          "outFile": "dom.html"
        },
        {
          "id": "PixiRenderer",
          "type": "class",
          "superclass": "Renderer",
          "description": "Physics.renderer('pixi')\n\nRenderer that uses the PIXI.js library. [Documentation can be found here](https://github.com/wellcaffeinated/PhysicsJS/wiki/PIXI-Renderer).\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n   // Defines the default canvas colour\n   'color': '0x66FF99',\n\n   'circle' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C',\n       strokeAlpha: 1,\n       fillAlpha: 1\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '0x542437',\n       lineWidth: 1,\n       fillStyle: '0x542437',\n       angleIndicator: '0xFFFFFF'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50,\n       anchor: { x: 0.5, y: 0.5 }\n   }\n});\n```",
          "short_description": "Physics.renderer('pixi')\n",
          "line": 76,
          "aliases": [],
          "children": [
            {
              "id": "PixiRenderer#attach",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "PIXI.Graphics",
                        "Object"
                      ],
                      "description": " Graphics object or event data (`data.body`)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "PIXI.Graphics",
                    "Object"
                  ],
                  "description": " Graphics object or event data (`data.body`)\n\n     "
                }
              ],
              "description": "Event callback to attach a child to the stage",
              "short_description": "Event callback to attach a child to the stage",
              "line": 239,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "attach",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.attach",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
            },
            {
              "id": "PixiRenderer#centerAnchor",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "view",
                      "types": [
                        "PIXI.DisplayObject"
                      ],
                      "description": " The view to center\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "view",
                  "types": [
                    "PIXI.DisplayObject"
                  ],
                  "description": " The view to center\n\n     "
                }
              ],
              "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
              "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
              "line": 622,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "centerAnchor",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.centerAnchor",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
            },
            {
              "id": "PixiRenderer#createCircle",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "r",
                      "types": [
                        "Number"
                      ],
                      "description": " The circle radius\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a circle.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "r",
                  "types": [
                    "Number"
                  ],
                  "description": " The circle radius\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a circle.\n\n     "
                }
              ],
              "description": "Create a circle for use in PIXI stage",
              "short_description": "Create a circle for use in PIXI stage",
              "line": 362,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "createCircle",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.createCircle",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
            },
            {
              "id": "PixiRenderer#createDisplay",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "type",
                      "types": [
                        "String"
                      ],
                      "description": " The type of PIXI.DisplayObject to make\n\n     "
                    },
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " Options to apply to the view.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.DisplayObject",
                      "description": " An object that is renderable.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "type",
                  "types": [
                    "String"
                  ],
                  "description": " The type of PIXI.DisplayObject to make\n\n     "
                },
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " Options to apply to the view.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.DisplayObject",
                  "description": " An object that is renderable.\n\n     "
                }
              ],
              "description": "Create a PIXI sprite or movie clip.",
              "short_description": "Create a PIXI sprite or movie clip.",
              "line": 563,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "createDisplay",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.createDisplay",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
            },
            {
              "id": "PixiRenderer#createLine",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "from",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Starting point\n\n     "
                    },
                    {
                      "name": "to",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Ending point\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a polygon.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "from",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Starting point\n\n     "
                },
                {
                  "name": "to",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Ending point\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a polygon.\n\n     "
                }
              ],
              "description": "Create a line for use in PIXI stage",
              "short_description": "Create a line for use in PIXI stage",
              "line": 441,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "createLine",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.createLine",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
            },
            {
              "id": "PixiRenderer#createPolygon",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "verts",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of [[Vectorish]] vertices\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a polygon.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "verts",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of [[Vectorish]] vertices\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a polygon.\n\n     "
                }
              ],
              "description": "Create a polygon for use in PIXI stage",
              "short_description": "Create a polygon for use in PIXI stage",
              "line": 399,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "createPolygon",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.createPolygon",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
            },
            {
              "id": "PixiRenderer#createRect",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coord\n\n     "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coord\n\n     "
                    },
                    {
                      "name": "r",
                      "types": [
                        "Number"
                      ],
                      "description": " The rectangle width\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Number"
                      ],
                      "description": " The rectangle height\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object representing a circle.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The rectangle width\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The rectangle height\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a circle.\n\n     "
                }
              ],
              "description": "Create a rectangle for use in PIXI stage",
              "short_description": "Create a rectangle for use in PIXI stage",
              "line": 382,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "createRect",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.createRect",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
            },
            {
              "id": "PixiRenderer#detach",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "PIXI.Graphics",
                        "Object"
                      ],
                      "description": " Graphics object or event data (`data.body`)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "PIXI.Graphics",
                    "Object"
                  ],
                  "description": " Graphics object or event data (`data.body`)\n\n     "
                }
              ],
              "description": "Event callback to detach a child from the stage",
              "short_description": "Event callback to detach a child from the stage",
              "line": 220,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "detach",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.detach",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
            },
            {
              "id": "PixiRenderer#drawBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The body to draw\n\n     "
                    },
                    {
                      "name": "view",
                      "types": [
                        "DisplayObject"
                      ],
                      "description": " The pixi display object\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The body to draw\n\n     "
                },
                {
                  "name": "view",
                  "types": [
                    "DisplayObject"
                  ],
                  "description": " The pixi display object\n\n     "
                }
              ],
              "description": "Draw a PIXI.DisplayObject to the stage.",
              "short_description": "Draw a PIXI.DisplayObject to the stage.",
              "line": 287,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "drawBody",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.drawBody",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
            },
            {
              "id": "PixiRenderer#loadSpriteSheets",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "assetsToLoad",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of spritesheets to load\n\n     "
                    },
                    {
                      "name": "callback",
                      "types": [
                        "Function"
                      ],
                      "description": " Function to call when loading is complete\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "assetsToLoad",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of spritesheets to load\n\n     "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " Function to call when loading is complete\n\n     "
                }
              ],
              "description": "Loads textures defined in a spritesheet",
              "short_description": "Loads textures defined in a spritesheet",
              "line": 259,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "loadSpriteSheets",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.loadSpriteSheets",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
            },
            {
              "id": "PixiRenderer#setStyles",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "graphics",
                      "types": [
                        "PIXI.Graphics"
                      ],
                      "description": " The graphics object to set styles on\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "PIXI.Graphics",
                      "description": " A graphic object\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "graphics",
                  "types": [
                    "PIXI.Graphics"
                  ],
                  "description": " The graphics object to set styles on\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object\n\n     "
                }
              ],
              "description": "Set styles on pixi graphics object",
              "short_description": "Set styles on pixi graphics object",
              "line": 322,
              "aliases": [],
              "children": [],
              "file": "src/renderers/pixi-renderer.js",
              "name": "setStyles",
              "name_prefix": "PixiRenderer#",
              "path": "PixiRenderer.prototype.setStyles",
              "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
            }
          ],
          "file": "src/renderers/pixi-renderer.js",
          "subclasses": [],
          "name": "PixiRenderer",
          "path": "PixiRenderer",
          "outFile": "pixi-renderer.html"
        }
      ],
      "file": "src/core/renderer.js",
      "subclasses": [
        "CanvasRenderer",
        "DebugRenderer",
        "DomRenderer",
        "PixiRenderer"
      ],
      "name": "Renderer",
      "path": "Renderer",
      "outFile": "renderer.html"
    },
    "Renderer#init": {
      "id": "Renderer#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration options passed by the factory\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The configuration options passed by the factory\n\n     "
        }
      ],
      "internal": true,
      "description": "Initialization. Internal use.",
      "short_description": "Initialization. Internal use.",
      "line": 58,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "init",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.init",
      "outFile": "renderer.html#Renderer.prototype.init"
    },
    "Renderer#resize": {
      "id": "Renderer#resize",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "width",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The width in px\n\n     "
            },
            {
              "name": "height",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The height in px\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "width",
          "types": [
            "Number"
          ],
          "description": " The width in px\n\n     "
        },
        {
          "name": "height",
          "types": [
            "Number"
          ],
          "description": " The height in px\n\n     "
        }
      ],
      "description": "Set the dimensions of the renderer.\n\nIf no dimensions are specified it will auto resize.",
      "short_description": "Set the dimensions of the renderer.\n",
      "line": 87,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "resize",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.resize",
      "outFile": "renderer.html#Renderer.prototype.resize"
    },
    "Renderer#setWorld": {
      "id": "Renderer#setWorld",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "world",
              "types": [
                "Object"
              ],
              "description": " The world (or null)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "world",
          "types": [
            "Object"
          ],
          "description": " The world (or null)\n\n     "
        }
      ],
      "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
      "short_description": "Set which world to apply to.\n",
      "line": 107,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "setWorld",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.setWorld",
      "outFile": "renderer.html#Renderer.prototype.setWorld"
    },
    "Renderer#render": {
      "id": "Renderer#render",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "bodies",
              "types": [
                "Array"
              ],
              "description": " Array of bodies in the world (by reference!)\n\n     "
            },
            {
              "name": "meta",
              "types": [
                "Object"
              ],
              "description": " meta information\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "bodies",
          "types": [
            "Array"
          ],
          "description": " Array of bodies in the world (by reference!)\n\n     "
        },
        {
          "name": "meta",
          "types": [
            "Object"
          ],
          "description": " meta information\n\n     "
        }
      ],
      "description": "Render the world bodies and meta. Called by world.render()",
      "short_description": "Render the world bodies and meta. Called by world.render()",
      "line": 129,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "render",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.render",
      "outFile": "renderer.html#Renderer.prototype.render"
    },
    "Renderer#createView": {
      "id": "Renderer#createView",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " geometry The geometry\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object",
                "String"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Mixed",
              "description": " Whatever the renderer needs to render the body.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " geometry The geometry\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object",
            "String"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Mixed",
          "description": " Whatever the renderer needs to render the body.\n\n     "
        }
      ],
      "description": "Create a view for the specified geometry.\n\nThe view is used to render the body. It is a cached version\nof the body that gets moved and rotated according to the simulation.\n\nThe styles are used to modify the appearance of the view.\nThey depend on the renderer.\n\nOverride this when creating renderers.",
      "short_description": "Create a view for the specified geometry.\n",
      "line": 182,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "createView",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.createView",
      "outFile": "renderer.html#Renderer.prototype.createView"
    },
    "Renderer#drawMeta": {
      "id": "Renderer#drawMeta",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "meta",
              "types": [
                "Object"
              ],
              "description": " The meta data\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "meta",
          "types": [
            "Object"
          ],
          "description": " The meta data\n\n     "
        }
      ],
      "description": "Draw the meta data.\n\nThe meta data will look like this:\n\n```javascript\nmeta = {\n    fps: 60, // the frames per second\n    ipf: 4 // the number of iterations per frame\n};\n```\n\nOverride this when creating renderers.",
      "short_description": "Draw the meta data.\n",
      "line": 209,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "drawMeta",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.drawMeta",
      "outFile": "renderer.html#Renderer.prototype.drawMeta"
    },
    "Renderer#drawBody": {
      "id": "Renderer#drawBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Object"
              ],
              "description": " The body to draw\n\n     "
            },
            {
              "name": "view",
              "types": [
                "Object"
              ],
              "description": " The view for the body\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Object"
          ],
          "description": " The body to draw\n\n     "
        },
        {
          "name": "view",
          "types": [
            "Object"
          ],
          "description": " The view for the body\n\n     "
        }
      ],
      "description": "Draw specified body using specified view.\n\nOverride this when creating renderers.",
      "short_description": "Draw specified body using specified view.\n",
      "line": 226,
      "aliases": [],
      "children": [],
      "file": "src/core/renderer.js",
      "name": "drawBody",
      "name_prefix": "Renderer#",
      "path": "Renderer.prototype.drawBody",
      "outFile": "renderer.html#Renderer.prototype.drawBody"
    },
    "Physics.world": {
      "id": "Physics.world",
      "type": "class",
      "related_to": "Physics",
      "description": "The world class and factory function.\n\nUse [[Physics]] to create worlds.",
      "short_description": "The world class and factory function.\n",
      "line": 8,
      "aliases": [],
      "children": [
        {
          "id": "Physics.world#add",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "things",
                  "types": [
                    "Object",
                    "Array"
                  ],
                  "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "things",
              "types": [
                "Object",
                "Array"
              ],
              "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
            }
          ],
          "chainable": true,
          "description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
          "short_description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
          "line": 204,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "add",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.add",
          "outFile": "world.html#Physics.world.prototype.add"
        },
        {
          "id": "Physics.world#addBehavior",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "behavior",
                  "types": [
                    "Behavior"
                  ],
                  "description": " The behavior to add\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "behavior",
              "types": [
                "Behavior"
              ],
              "description": " The behavior to add\n\n     "
            }
          ],
          "chainable": true,
          "description": "Add a behavior to the world",
          "short_description": "Add a behavior to the world",
          "line": 467,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "addBehavior",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.addBehavior",
          "outFile": "world.html#Physics.world.prototype.addBehavior"
        },
        {
          "id": "Physics.world#addBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The behavior to add\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The behavior to add\n\n     "
            }
          ],
          "chainable": true,
          "description": "Add a body to the world",
          "short_description": "Add a body to the world",
          "line": 535,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "addBody",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.addBody",
          "outFile": "world.html#Physics.world.prototype.addBody"
        },
        {
          "id": "Physics.world#destroy",
          "type": "instance method",
          "signatures": [
            {
              "arguments": []
            }
          ],
          "description": "Destroy the world.\n(Bwahahahahaha!)",
          "short_description": "Destroy the world.\n(Bwahahahahaha!)",
          "line": 803,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "destroy",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.destroy",
          "outFile": "world.html#Physics.world.prototype.destroy"
        },
        {
          "id": "Physics.world#find",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "rules",
                  "types": [
                    "Object"
                  ],
                  "description": " Query rules\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "filter",
                  "arguments": [
                    {
                      "name": "body",
                      "description": " Each body in the world\n\n     ",
                      "types": [
                        "Body"
                      ]
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " Filter function called to check bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " Query rules\n\n     "
            },
            {
              "name": "filter",
              "types": [
                "Function"
              ],
              "description": " Filter function called to check bodies\n\n     "
            },
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Each body in the world\n\n     "
            }
          ],
          "related_to": "Physics.query",
          "description": "Find all matching bodies based on query rules.",
          "short_description": "Find all matching bodies based on query rules.",
          "line": 624,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "find",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.find",
          "outFile": "world.html#Physics.world.prototype.find"
        },
        {
          "id": "Physics.world#findOne",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "rules",
                  "types": [
                    "Object"
                  ],
                  "description": " Query rules.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Body"
                },
                {
                  "type": false
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "filter",
                  "arguments": [
                    {
                      "name": "body",
                      "description": " Each body in the world\n\n     ",
                      "types": [
                        "Body"
                      ]
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " Filter function called to check bodies\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Body"
                },
                {
                  "type": false
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " Query rules.\n\n     "
            },
            {
              "name": "filter",
              "types": [
                "Function"
              ],
              "description": " Filter function called to check bodies\n\n     "
            },
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Each body in the world\n\n     "
            }
          ],
          "related_to": "Physics.query",
          "description": "Find first matching body based on query rules.",
          "short_description": "Find first matching body based on query rules.",
          "line": 606,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "findOne",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.findOne",
          "outFile": "world.html#Physics.world.prototype.findOne"
        },
        {
          "id": "Physics.world#getBehaviors",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " Array of behaviors\n\n     "
            }
          ],
          "description": "Get copied list of behaviors in the world",
          "short_description": "Get copied list of behaviors in the world",
          "line": 492,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "getBehaviors",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.getBehaviors",
          "outFile": "world.html#Physics.world.prototype.getBehaviors"
        },
        {
          "id": "Physics.world#getBodies",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " Array of bodies\n\n     "
            }
          ],
          "description": "Get copied list of bodies in the world",
          "short_description": "Get copied list of bodies in the world",
          "line": 560,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "getBodies",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.getBodies",
          "outFile": "world.html#Physics.world.prototype.getBodies"
        },
        {
          "id": "Physics.world#has",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "thing",
                  "types": [
                    "Object"
                  ],
                  "description": " The thing to test\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "thing",
              "types": [
                "Object"
              ],
              "description": " The thing to test\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
            }
          ],
          "chainable": true,
          "description": "Determine if a thing has been added to world.",
          "short_description": "Determine if a thing has been added to world.",
          "line": 305,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "has",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.has",
          "outFile": "world.html#Physics.world.prototype.has"
        },
        {
          "id": "Physics.world#init",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see constructor)\n\n     "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "world"
                    },
                    {
                      "name": "Physics"
                    }
                  ],
                  "callback": true,
                  "optional": true,
                  "types": [
                    "Function",
                    "Array"
                  ],
                  "description": " Callback function or array of callbacks called with this === world\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " configuration options (see constructor)\n\n     "
            },
            {
              "name": "fn",
              "types": [
                "Function",
                "Array"
              ],
              "description": " Callback function or array of callbacks called with this === world\n\n     "
            }
          ],
          "internal": true,
          "related_to": "new Physics.world",
          "description": "Initialization",
          "short_description": "Initialization",
          "line": 144,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "init",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.init",
          "outFile": "world.html#Physics.world.prototype.init"
        },
        {
          "id": "Physics.world#integrator",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "integrator",
                  "optional": true,
                  "types": [
                    "Integrator"
                  ],
                  "description": " The integrator to set on the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Integrator",
                  "description": " The currently set integrator if `integrator` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `integrator` specified\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "integrator",
              "types": [
                "Integrator"
              ],
              "description": " The integrator to set on the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Integrator",
              "description": " The currently set integrator if `integrator` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `integrator` specified\n\n     "
            }
          ],
          "chainable": true,
          "description": "Get or Set the integrator",
          "short_description": "Get or Set the integrator",
          "line": 351,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "integrator",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.integrator",
          "outFile": "world.html#Physics.world.prototype.integrator"
        },
        {
          "id": "Physics.world#isPaused",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " Returns `true` if world is paused, `false` otherwise.\n\n     "
            }
          ],
          "description": "Determine if world is paused.",
          "short_description": "Determine if world is paused.",
          "line": 792,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "isPaused",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.isPaused",
          "outFile": "world.html#Physics.world.prototype.isPaused"
        },
        {
          "id": "Physics.world#iterate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " The timestep\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " The timestep\n\n     "
            }
          ],
          "internal": true,
          "description": "Do a single iteration.",
          "short_description": "Do a single iteration.",
          "line": 639,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "iterate",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.iterate",
          "outFile": "world.html#Physics.world.prototype.iterate"
        },
        {
          "id": "Physics.world#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "cfg",
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see constructor)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Options container\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " configuration options (see constructor)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Options container\n\n     "
            }
          ],
          "description": "Set config options. Also access options by `.options.<option>`.",
          "short_description": "Set config options. Also access options by `.options.<option>`.",
          "line": 196,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "options",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.options",
          "outFile": "world.html#Physics.world.prototype.options"
        },
        {
          "id": "Physics.world#pause",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "chainable": true,
          "description": "Pause the world (step calls do nothing).",
          "short_description": "Pause the world (step calls do nothing).",
          "line": 767,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "pause",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.pause",
          "outFile": "world.html#Physics.world.prototype.pause"
        },
        {
          "id": "Physics.world#remove",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "things",
                  "types": [
                    "Object",
                    "Array"
                  ],
                  "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "things",
              "types": [
                "Object",
                "Array"
              ],
              "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
            }
          ],
          "chainable": true,
          "description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
          "short_description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
          "line": 252,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "remove",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.remove",
          "outFile": "world.html#Physics.world.prototype.remove"
        },
        {
          "id": "Physics.world#removeBehavior",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "behavior",
                  "types": [
                    "Behavior"
                  ],
                  "description": " The behavior to remove\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "behavior",
              "types": [
                "Behavior"
              ],
              "description": " The behavior to remove\n\n     "
            }
          ],
          "chainable": true,
          "description": "Remove a behavior from the world",
          "short_description": "Remove a behavior from the world",
          "line": 504,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "removeBehavior",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.removeBehavior",
          "outFile": "world.html#Physics.world.prototype.removeBehavior"
        },
        {
          "id": "Physics.world#removeBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The body to remove\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The body to remove\n\n     "
            }
          ],
          "chainable": true,
          "description": "Remove a body from the world",
          "short_description": "Remove a body from the world",
          "line": 572,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "removeBody",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.removeBody",
          "outFile": "world.html#Physics.world.prototype.removeBody"
        },
        {
          "id": "Physics.world#render",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "chainable": true,
          "description": "Render current world state using the renderer",
          "short_description": "Render current world state using the renderer",
          "line": 747,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "render",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.render",
          "outFile": "world.html#Physics.world.prototype.render"
        },
        {
          "id": "Physics.world#renderer",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "renderer",
                  "optional": true,
                  "types": [
                    "Renderer"
                  ],
                  "description": " The renderer to set on the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Renderer",
                  "description": " The currently set renderer if `renderer` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `renderer` specified\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "renderer",
              "types": [
                "Renderer"
              ],
              "description": " The renderer to set on the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Renderer",
              "description": " The currently set renderer if `renderer` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `renderer` specified\n\n     "
            }
          ],
          "chainable": true,
          "description": "Get or Set the renderer",
          "short_description": "Get or Set the renderer",
          "line": 391,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "renderer",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.renderer",
          "outFile": "world.html#Physics.world.prototype.renderer"
        },
        {
          "id": "Physics.world#step",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "now",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Current unix timestamp\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "now",
              "types": [
                "Number"
              ],
              "description": " Current unix timestamp\n\n     "
            }
          ],
          "chainable": true,
          "description": "Step the world up to specified time or do one step if no time is specified.",
          "short_description": "Step the world up to specified time or do one step if no time is specified.",
          "line": 650,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "step",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.step",
          "outFile": "world.html#Physics.world.prototype.step"
        },
        {
          "id": "Physics.world#timestep",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "dt",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The time step for the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The currently set time step if `dt` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `dt` specified\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " The time step for the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The currently set time step if `dt` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `dt` specified\n\n     "
            }
          ],
          "chainable": true,
          "description": "Get or Set the timestep",
          "short_description": "Get or Set the timestep",
          "line": 431,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "timestep",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.timestep",
          "outFile": "world.html#Physics.world.prototype.timestep"
        },
        {
          "id": "Physics.world#unpause",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "chainable": true,
          "description": "Unpause the world (step calls continue as usual).",
          "short_description": "Unpause the world (step calls continue as usual).",
          "line": 779,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "unpause",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.unpause",
          "outFile": "world.html#Physics.world.prototype.unpause"
        },
        {
          "id": "Physics.world#wakeUpAll",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "this",
              "description": " for chaining\n\n     "
            }
          ],
          "chainable": true,
          "description": "Wake up all bodies in world.",
          "short_description": "Wake up all bodies in world.",
          "line": 451,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "wakeUpAll",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.wakeUpAll",
          "outFile": "world.html#Physics.world.prototype.wakeUpAll"
        },
        {
          "id": "Physics.world#warp",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "warp",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The time warp factor\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                },
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "warp",
              "types": [
                "Number"
              ],
              "description": " The time warp factor\n\n     "
            }
          ],
          "description": "Speed up or slow down the iteration by this factor.\n\nExample:\n```javascript\n// slow motion... 10x slower\nworld.warp( 0.01 );\n```",
          "short_description": "Speed up or slow down the iteration by this factor.\n",
          "line": 732,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "warp",
          "name_prefix": "Physics.world#",
          "path": "Physics.world.prototype.warp",
          "outFile": "world.html#Physics.world.prototype.warp"
        },
        {
          "id": "new Physics.world",
          "type": "constructor",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see description)\n\n "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "world",
                      "description": " The current world created\n\n ",
                      "types": [
                        "Physics.world"
                      ]
                    },
                    {
                      "name": "Physics",
                      "description": " The Physics namespace\n\n ",
                      "types": [
                        "Physics"
                      ]
                    }
                  ],
                  "callback": true,
                  "optional": true,
                  "types": [
                    "Function",
                    "Array"
                  ],
                  "description": " Callback function or array of callbacks called with this === world\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " configuration options (see description)\n\n "
            },
            {
              "name": "fn",
              "types": [
                "Function",
                "Array"
              ],
              "description": " Callback function or array of callbacks called with this === world\n\n "
            },
            {
              "name": "world",
              "types": [
                "Physics.world"
              ],
              "description": " The current world created\n\n "
            },
            {
              "name": "Physics",
              "types": [
                "Physics"
              ],
              "description": " The Physics namespace\n\n "
            }
          ],
          "alias_of": "Physics",
          "description": "World Constructor.\n\nUse [[Physics]] to create worlds.\n\nConfiguration options and defaults:\n\n```javascript\n{\n // default timestep\n timestep: 6,\n // maximum number of iterations per step\n maxIPF: 4,\n\n // default integrator\n integrator: 'verlet',\n\n // is sleeping disabled?\n sleepDisabled: false,\n // speed at which bodies wake up\n sleepSpeedLimit: 0.1,\n // variance in position below which bodies fall asleep\n sleepVarianceLimit: 2,\n // time (ms) before sleepy bodies fall asleep\n sleepTimeLimit: 500\n}\n```\n\nIf called with an array of functions, and any functions\nreturn a [promise-like object](http://promises-aplus.github.io/promises-spec/),\neach remaining callback will be called only when that promise is resolved.\n\nExample:\n\n```javascript\n// hypothetical resources need to be loaded...\nPhysics( cfg, [\n    function( world ){\n        var dfd = $.Deferred()\n            ,images = []\n            ,toLoad = myImages.length\n            ,callback = function(){\n                toLoad--;\n                // wait for all images to be loaded\n                if ( toLoad <= 0 ){\n                    dfd.resolve();\n                }\n            }\n            ;\n\n        // load images\n        $.each(myImages, function( src ){\n            var img = new Image();\n            img.onload = callback;\n            img.src = src;\n        });\n\n        return dfd.promise();\n    },\n    function( world ){\n        // won't be executed until images are loaded\n        // initialize world... etc...\n    }\n]);\n```",
          "short_description": "World Constructor.\n",
          "line": 124,
          "aliases": [],
          "children": [],
          "file": "src/core/world.js",
          "name": "new",
          "name_prefix": "Physics.world.",
          "path": "Physics.world.new",
          "outFile": "world.html#Physics.world.new"
        }
      ],
      "file": "src/core/world.js",
      "subclasses": [],
      "name": "world",
      "name_prefix": "Physics.",
      "path": "Physics.world",
      "outFile": "world.html"
    },
    "Physics.world.new": {
      "id": "new Physics.world",
      "type": "constructor",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " configuration options (see description)\n\n "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "world",
                  "description": " The current world created\n\n ",
                  "types": [
                    "Physics.world"
                  ]
                },
                {
                  "name": "Physics",
                  "description": " The Physics namespace\n\n ",
                  "types": [
                    "Physics"
                  ]
                }
              ],
              "callback": true,
              "optional": true,
              "types": [
                "Function",
                "Array"
              ],
              "description": " Callback function or array of callbacks called with this === world\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " configuration options (see description)\n\n "
        },
        {
          "name": "fn",
          "types": [
            "Function",
            "Array"
          ],
          "description": " Callback function or array of callbacks called with this === world\n\n "
        },
        {
          "name": "world",
          "types": [
            "Physics.world"
          ],
          "description": " The current world created\n\n "
        },
        {
          "name": "Physics",
          "types": [
            "Physics"
          ],
          "description": " The Physics namespace\n\n "
        }
      ],
      "alias_of": "Physics",
      "description": "World Constructor.\n\nUse [[Physics]] to create worlds.\n\nConfiguration options and defaults:\n\n```javascript\n{\n // default timestep\n timestep: 6,\n // maximum number of iterations per step\n maxIPF: 4,\n\n // default integrator\n integrator: 'verlet',\n\n // is sleeping disabled?\n sleepDisabled: false,\n // speed at which bodies wake up\n sleepSpeedLimit: 0.1,\n // variance in position below which bodies fall asleep\n sleepVarianceLimit: 2,\n // time (ms) before sleepy bodies fall asleep\n sleepTimeLimit: 500\n}\n```\n\nIf called with an array of functions, and any functions\nreturn a [promise-like object](http://promises-aplus.github.io/promises-spec/),\neach remaining callback will be called only when that promise is resolved.\n\nExample:\n\n```javascript\n// hypothetical resources need to be loaded...\nPhysics( cfg, [\n    function( world ){\n        var dfd = $.Deferred()\n            ,images = []\n            ,toLoad = myImages.length\n            ,callback = function(){\n                toLoad--;\n                // wait for all images to be loaded\n                if ( toLoad <= 0 ){\n                    dfd.resolve();\n                }\n            }\n            ;\n\n        // load images\n        $.each(myImages, function( src ){\n            var img = new Image();\n            img.onload = callback;\n            img.src = src;\n        });\n\n        return dfd.promise();\n    },\n    function( world ){\n        // won't be executed until images are loaded\n        // initialize world... etc...\n    }\n]);\n```",
      "short_description": "World Constructor.\n",
      "line": 124,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "new",
      "name_prefix": "Physics.world.",
      "path": "Physics.world.new",
      "outFile": "world.html#Physics.world.new"
    },
    "Physics.world#init": {
      "id": "Physics.world#init",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " configuration options (see constructor)\n\n     "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "world"
                },
                {
                  "name": "Physics"
                }
              ],
              "callback": true,
              "optional": true,
              "types": [
                "Function",
                "Array"
              ],
              "description": " Callback function or array of callbacks called with this === world\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " configuration options (see constructor)\n\n     "
        },
        {
          "name": "fn",
          "types": [
            "Function",
            "Array"
          ],
          "description": " Callback function or array of callbacks called with this === world\n\n     "
        }
      ],
      "internal": true,
      "related_to": "new Physics.world",
      "description": "Initialization",
      "short_description": "Initialization",
      "line": 144,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "init",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.init",
      "outFile": "world.html#Physics.world.prototype.init"
    },
    "Physics.world#options": {
      "id": "Physics.world#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "cfg",
              "types": [
                "Object"
              ],
              "description": " configuration options (see constructor)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " Options container\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " configuration options (see constructor)\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " Options container\n\n     "
        }
      ],
      "description": "Set config options. Also access options by `.options.<option>`.",
      "short_description": "Set config options. Also access options by `.options.<option>`.",
      "line": 196,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "options",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.options",
      "outFile": "world.html#Physics.world.prototype.options"
    },
    "Physics.world#add": {
      "id": "Physics.world#add",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "things",
              "types": [
                "Object",
                "Array"
              ],
              "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "things",
          "types": [
            "Object",
            "Array"
          ],
          "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
        }
      ],
      "chainable": true,
      "description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
      "short_description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
      "line": 204,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "add",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.add",
      "outFile": "world.html#Physics.world.prototype.add"
    },
    "Physics.world#remove": {
      "id": "Physics.world#remove",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "things",
              "types": [
                "Object",
                "Array"
              ],
              "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "things",
          "types": [
            "Object",
            "Array"
          ],
          "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
        }
      ],
      "chainable": true,
      "description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
      "short_description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
      "line": 252,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "remove",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.remove",
      "outFile": "world.html#Physics.world.prototype.remove"
    },
    "Physics.world#has": {
      "id": "Physics.world#has",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "thing",
              "types": [
                "Object"
              ],
              "description": " The thing to test\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "thing",
          "types": [
            "Object"
          ],
          "description": " The thing to test\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
        }
      ],
      "chainable": true,
      "description": "Determine if a thing has been added to world.",
      "short_description": "Determine if a thing has been added to world.",
      "line": 305,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "has",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.has",
      "outFile": "world.html#Physics.world.prototype.has"
    },
    "Physics.world#integrator": {
      "id": "Physics.world#integrator",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "integrator",
              "optional": true,
              "types": [
                "Integrator"
              ],
              "description": " The integrator to set on the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Integrator",
              "description": " The currently set integrator if `integrator` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `integrator` specified\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "integrator",
          "types": [
            "Integrator"
          ],
          "description": " The integrator to set on the world\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Integrator",
          "description": " The currently set integrator if `integrator` not specified\n\n     "
        },
        {
          "type": "this",
          "description": " for chaining if `integrator` specified\n\n     "
        }
      ],
      "chainable": true,
      "description": "Get or Set the integrator",
      "short_description": "Get or Set the integrator",
      "line": 351,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "integrator",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.integrator",
      "outFile": "world.html#Physics.world.prototype.integrator"
    },
    "Physics.world#renderer": {
      "id": "Physics.world#renderer",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "renderer",
              "optional": true,
              "types": [
                "Renderer"
              ],
              "description": " The renderer to set on the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Renderer",
              "description": " The currently set renderer if `renderer` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `renderer` specified\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "renderer",
          "types": [
            "Renderer"
          ],
          "description": " The renderer to set on the world\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Renderer",
          "description": " The currently set renderer if `renderer` not specified\n\n     "
        },
        {
          "type": "this",
          "description": " for chaining if `renderer` specified\n\n     "
        }
      ],
      "chainable": true,
      "description": "Get or Set the renderer",
      "short_description": "Get or Set the renderer",
      "line": 391,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "renderer",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.renderer",
      "outFile": "world.html#Physics.world.prototype.renderer"
    },
    "Physics.world#timestep": {
      "id": "Physics.world#timestep",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dt",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The time step for the world\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The currently set time step if `dt` not specified\n\n     "
            },
            {
              "type": "this",
              "description": " for chaining if `dt` specified\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " The time step for the world\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " The currently set time step if `dt` not specified\n\n     "
        },
        {
          "type": "this",
          "description": " for chaining if `dt` specified\n\n     "
        }
      ],
      "chainable": true,
      "description": "Get or Set the timestep",
      "short_description": "Get or Set the timestep",
      "line": 431,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "timestep",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.timestep",
      "outFile": "world.html#Physics.world.prototype.timestep"
    },
    "Physics.world#wakeUpAll": {
      "id": "Physics.world#wakeUpAll",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "this",
          "description": " for chaining\n\n     "
        }
      ],
      "chainable": true,
      "description": "Wake up all bodies in world.",
      "short_description": "Wake up all bodies in world.",
      "line": 451,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "wakeUpAll",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.wakeUpAll",
      "outFile": "world.html#Physics.world.prototype.wakeUpAll"
    },
    "Physics.world#addBehavior": {
      "id": "Physics.world#addBehavior",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "behavior",
              "types": [
                "Behavior"
              ],
              "description": " The behavior to add\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "behavior",
          "types": [
            "Behavior"
          ],
          "description": " The behavior to add\n\n     "
        }
      ],
      "chainable": true,
      "description": "Add a behavior to the world",
      "short_description": "Add a behavior to the world",
      "line": 467,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "addBehavior",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.addBehavior",
      "outFile": "world.html#Physics.world.prototype.addBehavior"
    },
    "Physics.world#getBehaviors": {
      "id": "Physics.world#getBehaviors",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " Array of behaviors\n\n     "
        }
      ],
      "description": "Get copied list of behaviors in the world",
      "short_description": "Get copied list of behaviors in the world",
      "line": 492,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "getBehaviors",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.getBehaviors",
      "outFile": "world.html#Physics.world.prototype.getBehaviors"
    },
    "Physics.world#removeBehavior": {
      "id": "Physics.world#removeBehavior",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "behavior",
              "types": [
                "Behavior"
              ],
              "description": " The behavior to remove\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "behavior",
          "types": [
            "Behavior"
          ],
          "description": " The behavior to remove\n\n     "
        }
      ],
      "chainable": true,
      "description": "Remove a behavior from the world",
      "short_description": "Remove a behavior from the world",
      "line": 504,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "removeBehavior",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.removeBehavior",
      "outFile": "world.html#Physics.world.prototype.removeBehavior"
    },
    "Physics.world#addBody": {
      "id": "Physics.world#addBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The behavior to add\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " The behavior to add\n\n     "
        }
      ],
      "chainable": true,
      "description": "Add a body to the world",
      "short_description": "Add a body to the world",
      "line": 535,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "addBody",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.addBody",
      "outFile": "world.html#Physics.world.prototype.addBody"
    },
    "Physics.world#getBodies": {
      "id": "Physics.world#getBodies",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " Array of bodies\n\n     "
        }
      ],
      "description": "Get copied list of bodies in the world",
      "short_description": "Get copied list of bodies in the world",
      "line": 560,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "getBodies",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.getBodies",
      "outFile": "world.html#Physics.world.prototype.getBodies"
    },
    "Physics.world#removeBody": {
      "id": "Physics.world#removeBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The body to remove\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " The body to remove\n\n     "
        }
      ],
      "chainable": true,
      "description": "Remove a body from the world",
      "short_description": "Remove a body from the world",
      "line": 572,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "removeBody",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.removeBody",
      "outFile": "world.html#Physics.world.prototype.removeBody"
    },
    "Physics.world#findOne": {
      "id": "Physics.world#findOne",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " Query rules.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Body"
            },
            {
              "type": false
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "filter",
              "arguments": [
                {
                  "name": "body",
                  "description": " Each body in the world\n\n     ",
                  "types": [
                    "Body"
                  ]
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " Filter function called to check bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Body"
            },
            {
              "type": false
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "rules",
          "types": [
            "Object"
          ],
          "description": " Query rules.\n\n     "
        },
        {
          "name": "filter",
          "types": [
            "Function"
          ],
          "description": " Filter function called to check bodies\n\n     "
        },
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " Each body in the world\n\n     "
        }
      ],
      "related_to": "Physics.query",
      "description": "Find first matching body based on query rules.",
      "short_description": "Find first matching body based on query rules.",
      "line": 606,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "findOne",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.findOne",
      "outFile": "world.html#Physics.world.prototype.findOne"
    },
    "Physics.world#find": {
      "id": "Physics.world#find",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " Query rules\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Array"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "filter",
              "arguments": [
                {
                  "name": "body",
                  "description": " Each body in the world\n\n     ",
                  "types": [
                    "Body"
                  ]
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " Filter function called to check bodies\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "rules",
          "types": [
            "Object"
          ],
          "description": " Query rules\n\n     "
        },
        {
          "name": "filter",
          "types": [
            "Function"
          ],
          "description": " Filter function called to check bodies\n\n     "
        },
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " Each body in the world\n\n     "
        }
      ],
      "related_to": "Physics.query",
      "description": "Find all matching bodies based on query rules.",
      "short_description": "Find all matching bodies based on query rules.",
      "line": 624,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "find",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.find",
      "outFile": "world.html#Physics.world.prototype.find"
    },
    "Physics.world#iterate": {
      "id": "Physics.world#iterate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "dt",
              "types": [
                "Number"
              ],
              "description": " The timestep\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "dt",
          "types": [
            "Number"
          ],
          "description": " The timestep\n\n     "
        }
      ],
      "internal": true,
      "description": "Do a single iteration.",
      "short_description": "Do a single iteration.",
      "line": 639,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "iterate",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.iterate",
      "outFile": "world.html#Physics.world.prototype.iterate"
    },
    "Physics.world#step": {
      "id": "Physics.world#step",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "now",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Current unix timestamp\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "now",
          "types": [
            "Number"
          ],
          "description": " Current unix timestamp\n\n     "
        }
      ],
      "chainable": true,
      "description": "Step the world up to specified time or do one step if no time is specified.",
      "short_description": "Step the world up to specified time or do one step if no time is specified.",
      "line": 650,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "step",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.step",
      "outFile": "world.html#Physics.world.prototype.step"
    },
    "Physics.world#warp": {
      "id": "Physics.world#warp",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "warp",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The time warp factor\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            },
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "warp",
          "types": [
            "Number"
          ],
          "description": " The time warp factor\n\n     "
        }
      ],
      "description": "Speed up or slow down the iteration by this factor.\n\nExample:\n```javascript\n// slow motion... 10x slower\nworld.warp( 0.01 );\n```",
      "short_description": "Speed up or slow down the iteration by this factor.\n",
      "line": 732,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "warp",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.warp",
      "outFile": "world.html#Physics.world.prototype.warp"
    },
    "Physics.world#render": {
      "id": "Physics.world#render",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "chainable": true,
      "description": "Render current world state using the renderer",
      "short_description": "Render current world state using the renderer",
      "line": 747,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "render",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.render",
      "outFile": "world.html#Physics.world.prototype.render"
    },
    "Physics.world#pause": {
      "id": "Physics.world#pause",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "chainable": true,
      "description": "Pause the world (step calls do nothing).",
      "short_description": "Pause the world (step calls do nothing).",
      "line": 767,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "pause",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.pause",
      "outFile": "world.html#Physics.world.prototype.pause"
    },
    "Physics.world#unpause": {
      "id": "Physics.world#unpause",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "chainable": true,
      "description": "Unpause the world (step calls continue as usual).",
      "short_description": "Unpause the world (step calls continue as usual).",
      "line": 779,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "unpause",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.unpause",
      "outFile": "world.html#Physics.world.prototype.unpause"
    },
    "Physics.world#isPaused": {
      "id": "Physics.world#isPaused",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " Returns `true` if world is paused, `false` otherwise.\n\n     "
        }
      ],
      "description": "Determine if world is paused.",
      "short_description": "Determine if world is paused.",
      "line": 792,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "isPaused",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.isPaused",
      "outFile": "world.html#Physics.world.prototype.isPaused"
    },
    "Physics.world#destroy": {
      "id": "Physics.world#destroy",
      "type": "instance method",
      "signatures": [
        {
          "arguments": []
        }
      ],
      "description": "Destroy the world.\n(Bwahahahahaha!)",
      "short_description": "Destroy the world.\n(Bwahahahahaha!)",
      "line": 803,
      "aliases": [],
      "children": [],
      "file": "src/core/world.js",
      "name": "destroy",
      "name_prefix": "Physics.world#",
      "path": "Physics.world.prototype.destroy",
      "outFile": "world.html#Physics.world.prototype.destroy"
    },
    "CircleGeometry": {
      "id": "CircleGeometry",
      "type": "class",
      "superclass": "Geometry",
      "description": "Physics.geometry('circle')\n\nThe circle geometry has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
      "short_description": "Physics.geometry('circle')\n",
      "line": 21,
      "aliases": [],
      "children": [],
      "file": "src/geometries/circle.js",
      "subclasses": [],
      "name": "CircleGeometry",
      "path": "CircleGeometry",
      "outFile": "circle.html"
    },
    "CompoundGeometry": {
      "id": "CompoundGeometry",
      "type": "class",
      "superclass": "Geometry",
      "description": "Physics.geometry('compound')\n\nGeometry for compound shapes.\n\nExample:\n\n```javascript\nvar thing = Physics.geometry('compound');\nthing.addChild( child, pos, rotation );\n```",
      "short_description": "Physics.geometry('compound')\n",
      "line": 15,
      "aliases": [],
      "children": [
        {
          "id": "CompoundGeometry#addChild",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The child to add.\n\n     "
                },
                {
                  "name": "pos",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position to add the child at.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The child to add.\n\n     "
            },
            {
              "name": "pos",
              "types": [
                "Physics.vector"
              ],
              "description": " The position to add the child at.\n\n     "
            },
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " The rotation angle\n\n     "
            }
          ],
          "description": "Add a child at relative position.",
          "short_description": "Add a child at relative position.",
          "line": 45,
          "aliases": [],
          "children": [],
          "file": "src/geometries/compound.js",
          "name": "addChild",
          "name_prefix": "CompoundGeometry#",
          "path": "CompoundGeometry.prototype.addChild",
          "outFile": "compound.html#CompoundGeometry.prototype.addChild"
        },
        {
          "id": "CompoundGeometry#clear",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Remove all children.",
          "short_description": "Remove all children.",
          "line": 62,
          "aliases": [],
          "children": [],
          "file": "src/geometries/compound.js",
          "name": "clear",
          "name_prefix": "CompoundGeometry#",
          "path": "CompoundGeometry.prototype.clear",
          "outFile": "compound.html#CompoundGeometry.prototype.clear"
        }
      ],
      "file": "src/geometries/compound.js",
      "subclasses": [],
      "name": "CompoundGeometry",
      "path": "CompoundGeometry",
      "outFile": "compound.html"
    },
    "CompoundGeometry#addChild": {
      "id": "CompoundGeometry#addChild",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The child to add.\n\n     "
            },
            {
              "name": "pos",
              "types": [
                "Physics.vector"
              ],
              "description": " The position to add the child at.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " The child to add.\n\n     "
        },
        {
          "name": "pos",
          "types": [
            "Physics.vector"
          ],
          "description": " The position to add the child at.\n\n     "
        },
        {
          "name": "angle",
          "types": [
            "Number"
          ],
          "description": " The rotation angle\n\n     "
        }
      ],
      "description": "Add a child at relative position.",
      "short_description": "Add a child at relative position.",
      "line": 45,
      "aliases": [],
      "children": [],
      "file": "src/geometries/compound.js",
      "name": "addChild",
      "name_prefix": "CompoundGeometry#",
      "path": "CompoundGeometry.prototype.addChild",
      "outFile": "compound.html#CompoundGeometry.prototype.addChild"
    },
    "CompoundGeometry#clear": {
      "id": "CompoundGeometry#clear",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Remove all children.",
      "short_description": "Remove all children.",
      "line": 62,
      "aliases": [],
      "children": [],
      "file": "src/geometries/compound.js",
      "name": "clear",
      "name_prefix": "CompoundGeometry#",
      "path": "CompoundGeometry.prototype.clear",
      "outFile": "compound.html#CompoundGeometry.prototype.clear"
    },
    "ConvexPolygonGeometry": {
      "id": "ConvexPolygonGeometry",
      "type": "class",
      "superclass": "Geometry",
      "description": "Physics.geometry('convex-polygon')\n\nGeometry for convex polygons.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.geometry('convex-polygon', {\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
      "short_description": "Physics.geometry('convex-polygon')\n",
      "line": 27,
      "aliases": [],
      "children": [
        {
          "id": "ConvexPolygonGeometry#setVertices",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
            }
          ],
          "description": "Set the vertices of this polygon.",
          "short_description": "Set the vertices of this polygon.",
          "line": 61,
          "aliases": [],
          "children": [],
          "file": "src/geometries/convex-polygon.js",
          "name": "setVertices",
          "name_prefix": "ConvexPolygonGeometry#",
          "path": "ConvexPolygonGeometry.prototype.setVertices",
          "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
        }
      ],
      "file": "src/geometries/convex-polygon.js",
      "subclasses": [],
      "name": "ConvexPolygonGeometry",
      "path": "ConvexPolygonGeometry",
      "outFile": "convex-polygon.html"
    },
    "ConvexPolygonGeometry#setVertices": {
      "id": "ConvexPolygonGeometry#setVertices",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "hull",
              "types": [
                "Array"
              ],
              "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "hull",
          "types": [
            "Array"
          ],
          "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
        }
      ],
      "description": "Set the vertices of this polygon.",
      "short_description": "Set the vertices of this polygon.",
      "line": 61,
      "aliases": [],
      "children": [],
      "file": "src/geometries/convex-polygon.js",
      "name": "setVertices",
      "name_prefix": "ConvexPolygonGeometry#",
      "path": "ConvexPolygonGeometry.prototype.setVertices",
      "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
    },
    "PointGeometry": {
      "id": "PointGeometry",
      "type": "class",
      "superclass": "Geometry",
      "alias_of": "Geometry",
      "description": "Physics.geometry('point')\n\nThe point geometry represents a point.",
      "short_description": "Physics.geometry('point')\n",
      "line": 8,
      "aliases": [],
      "children": [],
      "file": "src/geometries/point.js",
      "subclasses": [],
      "name": "PointGeometry",
      "path": "PointGeometry",
      "outFile": "point.html"
    },
    "RectangleGeometry": {
      "id": "RectangleGeometry",
      "type": "class",
      "superclass": "Geometry",
      "description": "Physics.geometry('rectangle')\n\nGeometry for rectangles.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rectGeo = Physics.geometry('rectangle', {\n    width: 30,\n    height: 40\n});\n```",
      "short_description": "Physics.geometry('rectangle')\n",
      "line": 22,
      "aliases": [],
      "children": [
        {
          "id": "RectangleGeometry#height",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "description": "The height",
          "short_description": "The height",
          "line": 51,
          "aliases": [],
          "children": [],
          "file": "src/geometries/rectangle.js",
          "name": "height",
          "name_prefix": "RectangleGeometry#",
          "path": "RectangleGeometry.prototype.height",
          "outFile": "rectangle.html#RectangleGeometry.prototype.height"
        },
        {
          "id": "RectangleGeometry#width",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "description": "The width",
          "short_description": "The width",
          "line": 45,
          "aliases": [],
          "children": [],
          "file": "src/geometries/rectangle.js",
          "name": "width",
          "name_prefix": "RectangleGeometry#",
          "path": "RectangleGeometry.prototype.width",
          "outFile": "rectangle.html#RectangleGeometry.prototype.width"
        }
      ],
      "file": "src/geometries/rectangle.js",
      "subclasses": [],
      "name": "RectangleGeometry",
      "path": "RectangleGeometry",
      "outFile": "rectangle.html"
    },
    "RectangleGeometry#width": {
      "id": "RectangleGeometry#width",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "description": "The width",
      "short_description": "The width",
      "line": 45,
      "aliases": [],
      "children": [],
      "file": "src/geometries/rectangle.js",
      "name": "width",
      "name_prefix": "RectangleGeometry#",
      "path": "RectangleGeometry.prototype.width",
      "outFile": "rectangle.html#RectangleGeometry.prototype.width"
    },
    "RectangleGeometry#height": {
      "id": "RectangleGeometry#height",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "description": "The height",
      "short_description": "The height",
      "line": 51,
      "aliases": [],
      "children": [],
      "file": "src/geometries/rectangle.js",
      "name": "height",
      "name_prefix": "RectangleGeometry#",
      "path": "RectangleGeometry.prototype.height",
      "outFile": "rectangle.html#RectangleGeometry.prototype.height"
    },
    "ImprovedEuler": {
      "id": "ImprovedEuler",
      "type": "class",
      "superclass": "Integrator",
      "description": "`Physics.integrator('improved-euler')`.\n\nThe improved euler integrator.",
      "short_description": "`Physics.integrator('improved-euler')`.\n",
      "line": 11,
      "aliases": [],
      "children": [],
      "file": "src/integrators/improved-euler.js",
      "subclasses": [],
      "name": "ImprovedEuler",
      "path": "ImprovedEuler",
      "outFile": "improved-euler.html"
    },
    "VelocityVerlet": {
      "id": "VelocityVerlet",
      "type": "class",
      "superclass": "Integrator",
      "description": "`Physics.integrator('velocity-verlet')`.\n\nThe velocity-verlet integrator.",
      "short_description": "`Physics.integrator('velocity-verlet')`.\n",
      "line": 26,
      "aliases": [],
      "children": [],
      "file": "src/integrators/velocity-verlet.js",
      "subclasses": [],
      "name": "VelocityVerlet",
      "path": "VelocityVerlet",
      "outFile": "velocity-verlet.html"
    },
    "Verlet": {
      "id": "Verlet",
      "type": "class",
      "superclass": "Integrator",
      "description": "`Physics.integrator('verlet')`.\n\nThe verlet integrator.",
      "short_description": "`Physics.integrator('verlet')`.\n",
      "line": 26,
      "aliases": [],
      "children": [],
      "file": "src/integrators/verlet.js",
      "subclasses": [],
      "name": "Verlet",
      "path": "Verlet",
      "outFile": "verlet.html"
    },
    "Physics": {
      "id": "Physics",
      "type": "namespace",
      "related_to": "Physics.world",
      "description": "The top-level namespace. All of PhysicsJS is contained in\nthe `Physics` namespace.\n\nIt may (and should) be invoked as a function to create a world instance. For all intensive purposes, [[Physics]] and [[Physics.world]] are the same thing.\n\nSee [[new Physics.world]] for config options and function signature.\n\nExample:\n\n```javascript\nPhysics( cfg, function( world ) {\n    // use world\n}); // -> world\n```",
      "short_description": "The top-level namespace. All of PhysicsJS is contained in\nthe `Physics` namespace.\n",
      "line": 37,
      "aliases": [
        "Physics.world.new"
      ],
      "children": [
        {
          "id": "Physics.aabb",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "minX",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord of the \"top left\" point\n\n "
                },
                {
                  "name": "minY",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord of the \"top left\" point\n\n "
                },
                {
                  "name": "maxX",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord of the \"bottom right\" point\n\n "
                },
                {
                  "name": "maxY",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord of the \"bottom right\" point\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "pt1",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The first corner\n\n "
                },
                {
                  "name": "pt2",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The opposite corner\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width of the bounding box\n\n "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height of the bounding box\n\n "
                },
                {
                  "name": "pt",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The center point of the bounding box\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "minX",
              "types": [
                "Number"
              ],
              "description": " The x coord of the \"top left\" point\n\n "
            },
            {
              "name": "minY",
              "types": [
                "Number"
              ],
              "description": " The y coord of the \"top left\" point\n\n "
            },
            {
              "name": "maxX",
              "types": [
                "Number"
              ],
              "description": " The x coord of the \"bottom right\" point\n\n "
            },
            {
              "name": "maxY",
              "types": [
                "Number"
              ],
              "description": " The y coord of the \"bottom right\" point\n\n "
            },
            {
              "name": "pt1",
              "types": [
                "Vectorish"
              ],
              "description": " The first corner\n\n "
            },
            {
              "name": "pt2",
              "types": [
                "Vectorish"
              ],
              "description": " The opposite corner\n\n "
            },
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width of the bounding box\n\n "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height of the bounding box\n\n "
            },
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The center point of the bounding box\n\n "
            }
          ],
          "description": "Create an Axis Aligned Bounding Box.\n\nSignature:\n\n```javascript\n{\n    x: Number, // the x coord of the center point\n    y: Number, // the y coord of the center point\n    hw: Number, // the half-width\n    hh: Number, // the half-height\n}\n```",
          "short_description": "Create an Axis Aligned Bounding Box.\n",
          "line": 30,
          "aliases": [],
          "children": [
            {
              "id": "Physics.aabb.clone",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "aabb",
                      "types": [
                        "Object"
                      ],
                      "description": " The aabb to clone\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The clone\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Object"
                  ],
                  "description": " The aabb to clone\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The clone\n\n "
                }
              ],
              "description": "Clone an aabb.",
              "short_description": "Clone an aabb.",
              "line": 93,
              "aliases": [],
              "children": [],
              "file": "src/math/aabb.js",
              "name": "clone",
              "name_prefix": "Physics.aabb.",
              "path": "Physics.aabb.clone",
              "outFile": "aabb.html#Physics.aabb.clone"
            },
            {
              "id": "Physics.aabb.contains",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "aabb",
                      "types": [
                        "Object"
                      ],
                      "description": " The aabb\n\n "
                    },
                    {
                      "name": "pt",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Object"
                  ],
                  "description": " The aabb\n\n "
                },
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
                }
              ],
              "description": "Check if a point is inside an aabb.",
              "short_description": "Check if a point is inside an aabb.",
              "line": 78,
              "aliases": [],
              "children": [],
              "file": "src/math/aabb.js",
              "name": "contains",
              "name_prefix": "Physics.aabb.",
              "path": "Physics.aabb.contains",
              "outFile": "aabb.html#Physics.aabb.contains"
            },
            {
              "id": "Physics.aabb.overlap",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "aabb1",
                      "types": [
                        "Object"
                      ],
                      "description": " The first aabb\n\n "
                    },
                    {
                      "name": "aabb2",
                      "types": [
                        "Object"
                      ],
                      "description": " The second aabb\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if they overlap, `false` otherwise\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "aabb1",
                  "types": [
                    "Object"
                  ],
                  "description": " The first aabb\n\n "
                },
                {
                  "name": "aabb2",
                  "types": [
                    "Object"
                  ],
                  "description": " The second aabb\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if they overlap, `false` otherwise\n\n "
                }
              ],
              "description": "Check if two AABBs overlap.",
              "short_description": "Check if two AABBs overlap.",
              "line": 136,
              "aliases": [],
              "children": [],
              "file": "src/math/aabb.js",
              "name": "overlap",
              "name_prefix": "Physics.aabb.",
              "path": "Physics.aabb.overlap",
              "outFile": "aabb.html#Physics.aabb.overlap"
            },
            {
              "id": "Physics.aabb.union",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "aabb1",
                      "types": [
                        "Object"
                      ],
                      "description": " The first aabb (returned if modify is `true`)\n\n "
                    },
                    {
                      "name": "aabb2",
                      "types": [
                        "Object"
                      ],
                      "description": " The second aabb\n\n "
                    },
                    {
                      "name": "modify",
                      "optional": true
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "aabb1",
                  "types": [
                    "Object"
                  ],
                  "description": " The first aabb (returned if modify is `true`)\n\n "
                },
                {
                  "name": "aabb2",
                  "types": [
                    "Object"
                  ],
                  "description": " The second aabb\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
                }
              ],
              "description": "Get the union of two aabbs.",
              "short_description": "Get the union of two aabbs.",
              "line": 110,
              "aliases": [],
              "children": [],
              "file": "src/math/aabb.js",
              "name": "union",
              "name_prefix": "Physics.aabb.",
              "path": "Physics.aabb.union",
              "outFile": "aabb.html#Physics.aabb.union"
            }
          ],
          "file": "src/math/aabb.js",
          "name": "aabb",
          "name_prefix": "Physics.",
          "path": "Physics.aabb",
          "outFile": "aabb.html#Physics.aabb"
        },
        {
          "id": "Physics.behavior",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the behavior to create\n\n "
                },
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Behavior"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the behavior to create\n\n "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
            }
          ],
          "related_to": "Physics.util.decorator",
          "description": "Factory function for creating Behaviors.\n\nVisit [the PhysicsJS wiki on Behaviors](https://github.com/wellcaffeinated/PhysicsJS/wiki/Behaviors)\nfor usage documentation.",
          "short_description": "Factory function for creating Behaviors.\n",
          "line": 24,
          "aliases": [],
          "children": [
            {
              "id": "Behavior",
              "type": "class",
              "belongs_to": "Physics.behavior",
              "description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
              "short_description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
              "line": 31,
              "aliases": [],
              "children": [
                {
                  "id": "Behavior#applyTo",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "arr",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                    }
                  ],
                  "description": "Apply the behavior to a group of bodies.",
                  "short_description": "Apply the behavior to a group of bodies.",
                  "line": 66,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "applyTo",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.applyTo",
                  "outFile": "behavior.html#Behavior.prototype.applyTo"
                },
                {
                  "id": "Behavior#behave",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " The pubsub `integrate:positions` event data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "data",
                      "types": [
                        "Object"
                      ],
                      "description": " The pubsub `integrate:positions` event data\n\n     "
                    }
                  ],
                  "description": "Default method run on every world integration.\n\nYou _must_ extend this when creating a behavior,\nunless you extend the [[Behavior#connect]] and [[Behavior#disconnect]] methods.",
                  "short_description": "Default method run on every world integration.\n",
                  "line": 151,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "behave",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.behave",
                  "outFile": "behavior.html#Behavior.prototype.behave"
                },
                {
                  "id": "Behavior#connect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Physics.world"
                          ],
                          "description": " The world to connect to\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to connect to\n\n     "
                    }
                  ],
                  "description": "Connect to a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
                  "short_description": "Connect to a world.\n",
                  "line": 119,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "connect",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.connect",
                  "outFile": "behavior.html#Behavior.prototype.connect"
                },
                {
                  "id": "Behavior#disconnect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Physics.world"
                          ],
                          "description": " The world to disconnect from\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to disconnect from\n\n     "
                    }
                  ],
                  "description": "Disconnect from a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
                  "short_description": "Disconnect from a world.\n",
                  "line": 135,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "disconnect",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.disconnect",
                  "outFile": "behavior.html#Behavior.prototype.disconnect"
                },
                {
                  "id": "Behavior#getTargets",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Array"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array",
                      "description": " The array of bodies (by reference!) this behavior is applied to.\n\n     "
                    }
                  ],
                  "description": "Get the array of bodies (by reference!) this behavior is applied to.",
                  "short_description": "Get the array of bodies (by reference!) this behavior is applied to.",
                  "line": 82,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "getTargets",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.getTargets",
                  "outFile": "behavior.html#Behavior.prototype.getTargets"
                },
                {
                  "id": "Behavior#init",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration options passed by the factory\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Initialization. Internal use.",
                  "short_description": "Initialization. Internal use.",
                  "line": 38,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "init",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.init",
                  "outFile": "behavior.html#Behavior.prototype.init"
                },
                {
                  "id": "Behavior#options",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n         "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ],
                  "related_to": "Physics.util.options",
                  "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                  "short_description": "Set options on this instance.\n",
                  "line": 56,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "options",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.options",
                  "outFile": "behavior.html#Behavior.prototype.options"
                },
                {
                  "id": "Behavior#setWorld",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Object"
                          ],
                          "description": " The world (or null)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                  "short_description": "Set which world to apply to.\n",
                  "line": 95,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/behavior.js",
                  "name": "setWorld",
                  "name_prefix": "Behavior#",
                  "path": "Behavior.prototype.setWorld",
                  "outFile": "behavior.html#Behavior.prototype.setWorld"
                },
                {
                  "id": "AttractorBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('attractor')`.\n\nAttractor behavior attracts bodies to a specific point.\n\nAdditional options include:\n- pos: The position of the attraction point\n- strength: How strong the attraction is (default: `1`)\n- order: The power of the inverse distance (default: `2` because that is newtonian gravity... inverse square)\n- max: The maximum distance in which to apply the attraction (default: Infinity)\n- min: The minimum distance above which to apply the attraction (default: very small non-zero)",
                  "short_description": "`Physics.behavior('attractor')`.\n",
                  "line": 15,
                  "aliases": [],
                  "children": [
                    {
                      "id": "AttractorBehavior#position",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "pos",
                              "optional": true,
                              "types": [
                                "Vectorish"
                              ],
                              "description": " The position to set\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                            },
                            {
                              "type": "this",
                              "description": " For chaining\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "pos",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The position to set\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                        },
                        {
                          "type": "this",
                          "description": " For chaining\n\n     "
                        }
                      ],
                      "description": "Get or set the position of the attractor.",
                      "short_description": "Get or set the position of the attractor.",
                      "line": 56,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/attractor.js",
                      "name": "position",
                      "name_prefix": "AttractorBehavior#",
                      "path": "AttractorBehavior.prototype.position",
                      "outFile": "attractor.html#AttractorBehavior.prototype.position"
                    }
                  ],
                  "file": "src/behaviors/attractor.js",
                  "subclasses": [],
                  "name": "AttractorBehavior",
                  "path": "AttractorBehavior",
                  "outFile": "attractor.html"
                },
                {
                  "id": "BodyCollisionDetectionBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('body-collision-detection')`.\n\nDetect collisions of bodies.\n\nPublishes collision events to the world as a group of detected collisions per iteration.\n\nThe event data will have a `.collisions` property that is an array of collisions of the form:\n\n```javascript\n{\n    bodyA: // the first body\n    bodyB: // the second body\n    norm: // the normal vector (Vectorish)\n    mtv: // the minimum transit vector. (the direction and length needed to extract bodyB from bodyA)\n    pos: // the collision point relative to bodyA\n    overlap: // the amount bodyA overlaps bodyB\n}\n```\n\nAdditional options include:\n- check: channel to listen to for collision candidates (default: `collisions:candidates`). set to `true` to force check every pair of bodies in the world\n- channel: channel to publish events to (default: `collisions:detected`)",
                  "short_description": "`Physics.behavior('body-collision-detection')`.\n",
                  "line": 27,
                  "aliases": [],
                  "children": [
                    {
                      "id": "BodyCollisionDetectionBehavior#check",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " The event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " The event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                      "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                      "line": 366,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/body-collision-detection.js",
                      "name": "check",
                      "name_prefix": "BodyCollisionDetectionBehavior#",
                      "path": "BodyCollisionDetectionBehavior.prototype.check",
                      "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
                    },
                    {
                      "id": "BodyCollisionDetectionBehavior#checkAll",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " The event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " The event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to check all pairs of objects in the list for collisions",
                      "short_description": "Event callback to check all pairs of objects in the list for collisions",
                      "line": 428,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/body-collision-detection.js",
                      "name": "checkAll",
                      "name_prefix": "BodyCollisionDetectionBehavior#",
                      "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
                      "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
                    }
                  ],
                  "file": "src/behaviors/body-collision-detection.js",
                  "subclasses": [],
                  "name": "BodyCollisionDetectionBehavior",
                  "path": "BodyCollisionDetectionBehavior",
                  "outFile": "body-collision-detection.html"
                },
                {
                  "id": "BodyImpulseResponseBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('body-impulse-response')`.\n\nResponds to collisions by applying impulses.\n\nAdditional options include:\n- check: channel to listen to for collisions (default: `collisions:detected`).\n- mtvThreshold: apply partial extraction of bodies if the minimum transit vector is less than this value ( default: `1`)\n  this will depend on your simulation characteristic length scale\n- bodyExtractDropoff: every body overlap correction (underneith mtvThreshold) will only extract by this fraction (0..1). Helps with stablizing contacts. (default: `0.5`)\n- forceWakeupAboveOverlapThreshold: force bodies to wake up if the overlap is above mtvThreshold ( default: `true` )",
                  "short_description": "`Physics.behavior('body-impulse-response')`.\n",
                  "line": 15,
                  "aliases": [],
                  "children": [
                    {
                      "id": "BodyImpulseResponseBehavior#collideBodes",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "bodyA",
                              "types": [
                                "Object"
                              ],
                              "description": " First Body\n\n     "
                            },
                            {
                              "name": "bodyB",
                              "types": [
                                "Object"
                              ],
                              "description": " Second body\n\n     "
                            },
                            {
                              "name": "normal",
                              "types": [
                                "Vector"
                              ],
                              "description": " Normal vector of the collision surface\n\n     "
                            },
                            {
                              "name": "point",
                              "types": [
                                "Vector"
                              ],
                              "description": " Contact point of the collision\n\n     "
                            },
                            {
                              "name": "mtrans",
                              "types": [
                                "Vector"
                              ],
                              "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                            },
                            {
                              "name": "contact",
                              "types": [
                                "Boolean"
                              ],
                              "description": " Are the bodies in resting contact relative to each other\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Object"
                          ],
                          "description": " First Body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Object"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "normal",
                          "types": [
                            "Vector"
                          ],
                          "description": " Normal vector of the collision surface\n\n     "
                        },
                        {
                          "name": "point",
                          "types": [
                            "Vector"
                          ],
                          "description": " Contact point of the collision\n\n     "
                        },
                        {
                          "name": "mtrans",
                          "types": [
                            "Vector"
                          ],
                          "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                        },
                        {
                          "name": "contact",
                          "types": [
                            "Boolean"
                          ],
                          "description": " Are the bodies in resting contact relative to each other\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                      "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                      "line": 88,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/body-impulse-response.js",
                      "name": "collideBodes",
                      "name_prefix": "BodyImpulseResponseBehavior#",
                      "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
                      "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
                    },
                    {
                      "id": "BodyImpulseResponseBehavior#respond",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to respond to collision data.",
                      "short_description": "Event callback to respond to collision data.",
                      "line": 281,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/body-impulse-response.js",
                      "name": "respond",
                      "name_prefix": "BodyImpulseResponseBehavior#",
                      "path": "BodyImpulseResponseBehavior.prototype.respond",
                      "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
                    }
                  ],
                  "file": "src/behaviors/body-impulse-response.js",
                  "subclasses": [],
                  "name": "BodyImpulseResponseBehavior",
                  "path": "BodyImpulseResponseBehavior",
                  "outFile": "body-impulse-response.html"
                },
                {
                  "id": "ConstantAccelerationBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('constant-acceleration')`.\n\nConstant acceleration behavior.\n\nBasically the \"gravity\" behavior. Used to give \"earth-like gravity\" to the world.\n\nAdditional options include:\n- acc: The acceleration vector (Vectorish). (default: `{ x: 0, y: 0.0004 }`)",
                  "short_description": "`Physics.behavior('constant-acceleration')`.\n",
                  "line": 13,
                  "aliases": [],
                  "children": [
                    {
                      "id": "ConstantAccelerationBehavior#setAcceleration",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "acc",
                              "types": [
                                "Vectorish"
                              ],
                              "description": " The acceleration vector\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "acc",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The acceleration vector\n\n     "
                        }
                      ],
                      "description": "Set the acceleration of the behavior.",
                      "short_description": "Set the acceleration of the behavior.",
                      "line": 41,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/constant-acceleration.js",
                      "name": "setAcceleration",
                      "name_prefix": "ConstantAccelerationBehavior#",
                      "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
                      "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
                    }
                  ],
                  "file": "src/behaviors/constant-acceleration.js",
                  "subclasses": [],
                  "name": "ConstantAccelerationBehavior",
                  "path": "ConstantAccelerationBehavior",
                  "outFile": "constant-acceleration.html"
                },
                {
                  "id": "EdgeCollisionDetectionBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('edge-collision-detection')`.\n\nUsed to detect collisions with the boundaries of an AABB.\n\nAdditional options include:\n- aabb: The [[Physics.aabb]] bounds to use as the constraining boundary\n- restitution: The restitution of the boundary walls (default: `0.99`)\n- cof: The coefficient of friction of the boundary walls (default: `1`)\n- channel: The channel to publish collisions to. (default: 'collisions:detected')",
                  "short_description": "`Physics.behavior('edge-collision-detection')`.\n",
                  "line": 14,
                  "aliases": [],
                  "children": [
                    {
                      "id": "EdgeCollisionDetectionBehavior#checkAll",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " Event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to check all bodies for collisions with the edge",
                      "short_description": "Event callback to check all bodies for collisions with the edge",
                      "line": 227,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/edge-collision-detection.js",
                      "name": "checkAll",
                      "name_prefix": "EdgeCollisionDetectionBehavior#",
                      "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
                      "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
                    },
                    {
                      "id": "EdgeCollisionDetectionBehavior#setAABB",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "aabb",
                              "types": [
                                "Physics.aabb"
                              ],
                              "description": " The aabb to use as the boundary\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "aabb",
                          "types": [
                            "Physics.aabb"
                          ],
                          "description": " The aabb to use as the boundary\n\n     "
                        }
                      ],
                      "description": "Set the boundaries of the edge.",
                      "short_description": "Set the boundaries of the edge.",
                      "line": 189,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/edge-collision-detection.js",
                      "name": "setAABB",
                      "name_prefix": "EdgeCollisionDetectionBehavior#",
                      "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
                      "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
                    }
                  ],
                  "file": "src/behaviors/edge-collision-detection.js",
                  "subclasses": [],
                  "name": "EdgeCollisionDetectionBehavior",
                  "path": "EdgeCollisionDetectionBehavior",
                  "outFile": "edge-collision-detection.html"
                },
                {
                  "id": "InteractiveBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('interactive')`.\n\nUser interaction helper.\n\nUsed to get mouse/touch events and add grab interactions.\n\nAdditional options include:\n- el: The element of the renderer. What you input as the `el` for the renderer.\n- moveThrottle: The min time between move events (default: `10`).\n- minVel: The minimum velocity clamp [[Vectorish]] (default: { x: -5, y: -5 }) to restrict velocity a user can give to a body\n- maxVel: The maximum velocity clamp [[Vectorish]] (default: { x: 5, y: 5 }) to restrict velocity a user can give to a body\n\nThe behavior also triggers the following events on the world:\n```javascript\n// a body has been grabbed\nworld.on('interact:grab', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed\n});\n// no body was grabbed, but the renderer area was clicked, or touched\nworld.on('interact:poke', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n});\n// when a mouse or pointer moves\nworld.on('interact:move', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the grabbed body that was moved (if applicable)\n});\n// when the viewport is released (mouseup, touchend)\nworld.on('interact:release', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed (if applicable)\n});\n```\n\nThe behavior also sets body.isGrabbed = true for any grabbed bodies while they are grabbed.",
                  "short_description": "`Physics.behavior('interactive')`.\n",
                  "line": 45,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/interactive.js",
                  "subclasses": [],
                  "name": "InteractiveBehavior",
                  "path": "InteractiveBehavior",
                  "outFile": "interactive.html"
                },
                {
                  "id": "NewtonianBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('newtonian')`.\n\nNewtonian attraction between bodies (inverse square law).\n\nAdditional options include:\n- strength: The strength of the interaction between bodies. (default: `1`)\n- max: The maximum distance between bodies at which to apply the behavior. (default: `false`... infinite)\n- min: The minimum distance between bodies at which to apply the behavior. (default: `false`... autocalculate)",
                  "short_description": "`Physics.behavior('newtonian')`.\n",
                  "line": 13,
                  "aliases": [],
                  "children": [],
                  "file": "src/behaviors/newtonian.js",
                  "subclasses": [],
                  "name": "NewtonianBehavior",
                  "path": "NewtonianBehavior",
                  "outFile": "newtonian.html"
                },
                {
                  "id": "SweepPruneBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('sweep-prune')`.\n\nSweep and Prune implementation for broad phase collision detection.\n\nThis massively improves the speed of collision detection. It's set up to always be used with [[BodyCollisionDetection]], and [[BodyImpulseResponse]].\n\nAdditional options include:\n- channel: The channel to publish collision candidates to. (default: `collisions:candidates`)",
                  "short_description": "`Physics.behavior('sweep-prune')`.\n",
                  "line": 13,
                  "aliases": [],
                  "children": [
                    {
                      "id": "SweepPruneBehavior#broadPhase",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "Array"
                            }
                          ]
                        }
                      ],
                      "returns": [
                        {
                          "type": "Array",
                          "description": " The candidate data of overlapping aabbs\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Execute the broad phase and get candidate collisions",
                      "short_description": "Execute the broad phase and get candidate collisions",
                      "line": 95,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "broadPhase",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.broadPhase",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
                    },
                    {
                      "id": "SweepPruneBehavior#checkOverlaps",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "Array"
                            }
                          ]
                        }
                      ],
                      "returns": [
                        {
                          "type": "Array",
                          "description": " List of candidate collisions\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Check each axis for overlaps of bodies AABBs",
                      "short_description": "Check each axis for overlaps of bodies AABBs",
                      "line": 257,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "checkOverlaps",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.checkOverlaps",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
                    },
                    {
                      "id": "SweepPruneBehavior#clear",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": []
                        }
                      ],
                      "description": "Refresh tracking data",
                      "short_description": "Refresh tracking data",
                      "line": 52,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "clear",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.clear",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
                    },
                    {
                      "id": "SweepPruneBehavior#getPair",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "tr1",
                              "types": [
                                "Object"
                              ],
                              "description": " First tracker\n\n     "
                            },
                            {
                              "name": "tr2",
                              "types": [
                                "Object"
                              ],
                              "description": " Second tracker\n\n     "
                            },
                            {
                              "name": "doCreate",
                              "types": [
                                "Boolean"
                              ],
                              "description": " Create if not found\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " Pair object or null if not found\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "tr1",
                          "types": [
                            "Object"
                          ],
                          "description": " First tracker\n\n     "
                        },
                        {
                          "name": "tr2",
                          "types": [
                            "Object"
                          ],
                          "description": " Second tracker\n\n     "
                        },
                        {
                          "name": "doCreate",
                          "types": [
                            "Boolean"
                          ],
                          "description": " Create if not found\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " Pair object or null if not found\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Get a pair object for the tracker objects",
                      "short_description": "Get a pair object for the tracker objects",
                      "line": 181,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "getPair",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.getPair",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
                    },
                    {
                      "id": "SweepPruneBehavior#sortIntervalLists",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": []
                        }
                      ],
                      "internal": true,
                      "description": "Simple insertion sort for each axis",
                      "short_description": "Simple insertion sort for each axis",
                      "line": 112,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "sortIntervalLists",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.sortIntervalLists",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
                    },
                    {
                      "id": "SweepPruneBehavior#sweep",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " Event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to sweep and publish event if any candidate collisions are found",
                      "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
                      "line": 487,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "sweep",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.sweep",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
                    },
                    {
                      "id": "SweepPruneBehavior#trackBody",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " Event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to add body to list of those tracked by sweep and prune",
                      "short_description": "Event callback to add body to list of those tracked by sweep and prune",
                      "line": 393,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "trackBody",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.trackBody",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
                    },
                    {
                      "id": "SweepPruneBehavior#untrackBody",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "Object"
                              ],
                              "description": " Event data\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "Object"
                          ],
                          "description": " Event data\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Event callback to remove body from list of those tracked",
                      "short_description": "Event callback to remove body from list of those tracked",
                      "line": 432,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "untrackBody",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.untrackBody",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
                    },
                    {
                      "id": "SweepPruneBehavior#updateIntervals",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": []
                        }
                      ],
                      "internal": true,
                      "description": "Update position intervals on each axis",
                      "short_description": "Update position intervals on each axis",
                      "line": 364,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/sweep-prune.js",
                      "name": "updateIntervals",
                      "name_prefix": "SweepPruneBehavior#",
                      "path": "SweepPruneBehavior.prototype.updateIntervals",
                      "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
                    }
                  ],
                  "file": "src/behaviors/sweep-prune.js",
                  "subclasses": [],
                  "name": "SweepPruneBehavior",
                  "path": "SweepPruneBehavior",
                  "outFile": "sweep-prune.html"
                },
                {
                  "id": "VerletConstraintsBehavior",
                  "type": "class",
                  "superclass": "Behavior",
                  "description": "`Physics.behavior('verlet-constraints')`.\n\nVerlet constraints manager.\n\nHandles distance constraints, and angle constraints\n\nAdditional options include:\n- iterations: The number of iterations to take to relax the constraints. (default: `2`)",
                  "short_description": "`Physics.behavior('verlet-constraints')`.\n",
                  "line": 13,
                  "aliases": [],
                  "children": [
                    {
                      "id": "VerletConstraintsBehavior#angleConstraint",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "bodyA",
                              "types": [
                                "Body"
                              ],
                              "description": " First body\n\n     "
                            },
                            {
                              "name": "bodyB",
                              "types": [
                                "Body"
                              ],
                              "description": " Second body\n\n     "
                            },
                            {
                              "name": "bodyC",
                              "types": [
                                "Body"
                              ],
                              "description": " Third body\n\n     "
                            },
                            {
                              "name": "stiffness",
                              "optional": true,
                              "types": [
                                "Number"
                              ],
                              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                            },
                            {
                              "name": "targetAngle",
                              "optional": true,
                              "types": [
                                "Number"
                              ],
                              "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " The constraint data object\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Body"
                          ],
                          "description": " First body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Body"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "bodyC",
                          "types": [
                            "Body"
                          ],
                          "description": " Third body\n\n     "
                        },
                        {
                          "name": "stiffness",
                          "types": [
                            "Number"
                          ],
                          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                        },
                        {
                          "name": "targetAngle",
                          "types": [
                            "Number"
                          ],
                          "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The constraint data object\n\n     "
                        }
                      ],
                      "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
                      "short_description": "Constrain three bodies to a target relative angle\n",
                      "line": 129,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "angleConstraint",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.angleConstraint",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
                    },
                    {
                      "id": "VerletConstraintsBehavior#distanceConstraint",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "bodyA",
                              "types": [
                                "Body"
                              ],
                              "description": " First body\n\n     "
                            },
                            {
                              "name": "bodyB",
                              "types": [
                                "Body"
                              ],
                              "description": " Second body\n\n     "
                            },
                            {
                              "name": "stiffness",
                              "optional": true,
                              "types": [
                                "Number"
                              ],
                              "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                            },
                            {
                              "name": "targetLength",
                              "optional": true,
                              "types": [
                                "Number"
                              ],
                              "description": " Target length. defaults to current distance between the bodies\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " The constraint data object\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "bodyA",
                          "types": [
                            "Body"
                          ],
                          "description": " First body\n\n     "
                        },
                        {
                          "name": "bodyB",
                          "types": [
                            "Body"
                          ],
                          "description": " Second body\n\n     "
                        },
                        {
                          "name": "stiffness",
                          "types": [
                            "Number"
                          ],
                          "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                        },
                        {
                          "name": "targetLength",
                          "types": [
                            "Number"
                          ],
                          "description": " Target length. defaults to current distance between the bodies\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The constraint data object\n\n     "
                        }
                      ],
                      "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
                      "short_description": "Constrain two bodies to a target relative distance.\n",
                      "line": 86,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "distanceConstraint",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
                    },
                    {
                      "id": "VerletConstraintsBehavior#drop",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "description": "Remove all constraints",
                      "short_description": "Remove all constraints",
                      "line": 60,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "drop",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.drop",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
                    },
                    {
                      "id": "VerletConstraintsBehavior#getConstraints",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "Object"
                            }
                          ]
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The object containing copied arrays of the constraints\n\n     "
                        }
                      ],
                      "description": "Get all constraints.",
                      "short_description": "Get all constraints.",
                      "line": 419,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "getConstraints",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.getConstraints",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
                    },
                    {
                      "id": "VerletConstraintsBehavior#remove",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "constraintData",
                              "types": [
                                "Object"
                              ],
                              "description": " The constraint data returned when creating a constraint\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        },
                        {
                          "arguments": [
                            {
                              "name": "constraintId",
                              "types": [
                                "String"
                              ],
                              "description": " The constraint id\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "constraintData",
                          "types": [
                            "Object"
                          ],
                          "description": " The constraint data returned when creating a constraint\n\n     "
                        },
                        {
                          "name": "constraintId",
                          "types": [
                            "String"
                          ],
                          "description": " The constraint id\n\n     "
                        }
                      ],
                      "description": "Remove a constraint",
                      "short_description": "Remove a constraint",
                      "line": 160,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "remove",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.remove",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
                    },
                    {
                      "id": "VerletConstraintsBehavior#resolve",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": []
                        }
                      ],
                      "internal": true,
                      "description": "Resolve all constraints.",
                      "short_description": "Resolve all constraints.",
                      "line": 399,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "resolve",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.resolve",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
                    },
                    {
                      "id": "VerletConstraintsBehavior#resolveAngleConstraints",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "coef",
                              "types": [
                                "Number"
                              ],
                              "description": " Coefficient for this resolution phase\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "coef",
                          "types": [
                            "Number"
                          ],
                          "description": " Coefficient for this resolution phase\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Resolve angle constraints.",
                      "short_description": "Resolve angle constraints.",
                      "line": 205,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "resolveAngleConstraints",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
                    },
                    {
                      "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "coef",
                              "types": [
                                "Number"
                              ],
                              "description": " Coefficient for this resolution phase\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "coef",
                          "types": [
                            "Number"
                          ],
                          "description": " Coefficient for this resolution phase\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Resolve distance constraints.",
                      "short_description": "Resolve distance constraints.",
                      "line": 330,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "resolveDistanceConstraints",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
                    },
                    {
                      "id": "VerletConstraintsBehavior#shuffleConstraints",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": []
                        }
                      ],
                      "internal": true,
                      "description": "Mix up the constraints.",
                      "short_description": "Mix up the constraints.",
                      "line": 388,
                      "aliases": [],
                      "children": [],
                      "file": "src/behaviors/verlet-constraints.js",
                      "name": "shuffleConstraints",
                      "name_prefix": "VerletConstraintsBehavior#",
                      "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
                      "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
                    }
                  ],
                  "file": "src/behaviors/verlet-constraints.js",
                  "subclasses": [],
                  "name": "VerletConstraintsBehavior",
                  "path": "VerletConstraintsBehavior",
                  "outFile": "verlet-constraints.html"
                }
              ],
              "file": "src/core/behavior.js",
              "subclasses": [
                "AttractorBehavior",
                "BodyCollisionDetectionBehavior",
                "BodyImpulseResponseBehavior",
                "ConstantAccelerationBehavior",
                "EdgeCollisionDetectionBehavior",
                "InteractiveBehavior",
                "NewtonianBehavior",
                "SweepPruneBehavior",
                "VerletConstraintsBehavior"
              ],
              "name": "Behavior",
              "path": "Behavior",
              "outFile": "behavior.html"
            }
          ],
          "file": "src/core/behavior.js",
          "name": "behavior",
          "name_prefix": "Physics.",
          "path": "Physics.behavior",
          "outFile": "behavior.html#Physics.behavior"
        },
        {
          "id": "Physics.body",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the body to create\n\n "
                },
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Body"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the body to create\n\n "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
            }
          ],
          "related_to": "Physics.util.decorator",
          "description": "Factory function for creating Bodies.\n\nVisit [the PhysicsJS wiki on Bodies](https://github.com/wellcaffeinated/PhysicsJS/wiki/Bodies)\nfor usage documentation.",
          "short_description": "Factory function for creating Bodies.\n",
          "line": 58,
          "aliases": [],
          "children": [
            {
              "id": "Body",
              "type": "class",
              "belongs_to": "Physics.body",
              "description": "The base class for bodies created by [[Physics.body]] factory function.",
              "short_description": "The base class for bodies created by [[Physics.body]] factory function.",
              "line": 65,
              "aliases": [
                "PointBody"
              ],
              "children": [
                {
                  "id": "Body#aabb",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Object"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The aabb of this body\n\n     "
                    }
                  ],
                  "related_to": "Physics.aabb",
                  "description": "Get the Axis aligned bounding box for the body in its current position and rotation",
                  "short_description": "Get the Axis aligned bounding box for the body in its current position and rotation",
                  "line": 458,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "aabb",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.aabb",
                  "outFile": "body.html#Body.prototype.aabb"
                },
                {
                  "id": "Body#accelerate",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "acc",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The acceleration vector\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "acc",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The acceleration vector\n\n     "
                    }
                  ],
                  "description": "Accelerate the body by adding supplied vector to its current acceleration",
                  "short_description": "Accelerate the body by adding supplied vector to its current acceleration",
                  "line": 395,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "accelerate",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.accelerate",
                  "outFile": "body.html#Body.prototype.accelerate"
                },
                {
                  "id": "Body#applyForce",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "force",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The force vector\n\n     "
                        },
                        {
                          "name": "p",
                          "optional": true,
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The point vector from the COM at which to apply the force\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "force",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The force vector\n\n     "
                    },
                    {
                      "name": "p",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point vector from the COM at which to apply the force\n\n     "
                    }
                  ],
                  "description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
                  "short_description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
                  "line": 411,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "applyForce",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.applyForce",
                  "outFile": "body.html#Body.prototype.applyForce"
                },
                {
                  "id": "Body#cof",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "0.8"
                        }
                      ]
                    }
                  ],
                  "description": "The coefficient of friction of the body.\n\nIt's how much \"slide\" it has during collisions.\n\nA `cof` of `0` will really slidy.\n\nA `cof` of `1` has no slide.\n\nThis is a very simplistic implementation at the moment.\nWhat would be better is to have both static and kinetic\nfriction. But that's not done yet.",
                  "short_description": "The coefficient of friction of the body.\n",
                  "line": 218,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "cof",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.cof",
                  "outFile": "body.html#Body.prototype.cof"
                },
                {
                  "id": "Body#geometry",
                  "type": "namespace",
                  "related_to": "Physics.geometry",
                  "description": "The geometry for this body.\n\nBy default it is a `point` geometry which gets overridden.",
                  "short_description": "The geometry for this body.\n",
                  "line": 171,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "geometry",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.geometry",
                  "outFile": "body.html#Body.prototype.geometry"
                },
                {
                  "id": "Body#getGlobalOffset",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "out",
                          "optional": true,
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The offset in global coordinates\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "out",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The offset in global coordinates\n\n     "
                    }
                  ],
                  "related_to": "Body#offset",
                  "description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
                  "short_description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
                  "line": 445,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "getGlobalOffset",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.getGlobalOffset",
                  "outFile": "body.html#Body.prototype.getGlobalOffset"
                },
                {
                  "id": "Body#hidden",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "false"
                        }
                      ]
                    }
                  ],
                  "description": "Determines whether the body should be hidden by the renderer.",
                  "short_description": "Determines whether the body should be hidden by the renderer.",
                  "line": 237,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "hidden",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.hidden",
                  "outFile": "body.html#Body.prototype.hidden"
                },
                {
                  "id": "Body#init",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration options passed by the factory\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Initialization. Internal use.",
                  "short_description": "Initialization. Internal use.",
                  "line": 72,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "init",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.init",
                  "outFile": "body.html#Body.prototype.init"
                },
                {
                  "id": "Body#mass",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "1"
                        }
                      ]
                    }
                  ],
                  "description": "The mass.",
                  "short_description": "The mass.",
                  "line": 178,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "mass",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.mass",
                  "outFile": "body.html#Body.prototype.mass"
                },
                {
                  "id": "Body#offset",
                  "type": "namespace",
                  "description": "The vector offsetting the body's shape from its center of mass.",
                  "short_description": "The vector offsetting the body's shape from its center of mass.",
                  "line": 184,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "offset",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.offset",
                  "outFile": "body.html#Body.prototype.offset"
                },
                {
                  "id": "Body#options",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n         "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ],
                  "related_to": "Physics.util.options",
                  "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                  "short_description": "Set options on this instance.\n",
                  "line": 93,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "options",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.options",
                  "outFile": "body.html#Body.prototype.options"
                },
                {
                  "id": "Body#recalc",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Recalculate properties.\n\nIntended to be overridden by subclasses. Call when body physical properties are changed.",
                  "short_description": "Recalculate properties.\n",
                  "line": 503,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "recalc",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.recalc",
                  "outFile": "body.html#Body.prototype.recalc"
                },
                {
                  "id": "Body#restitution",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "1"
                        }
                      ]
                    }
                  ],
                  "description": "The restitution.\n\nThis is the \"bounciness\" of the body.\nIt's a number between `0` and `1`.\n\nA restitution of 1 is the bounciest.\n\nA restitution of 0 is not bouncy.\n\nWhen colliding the restitutions of bodies are\nmultiplied together to get the restitution between two\nbodies.",
                  "short_description": "The restitution.\n",
                  "line": 202,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "restitution",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.restitution",
                  "outFile": "body.html#Body.prototype.restitution"
                },
                {
                  "id": "Body#setWorld",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Object"
                          ],
                          "description": " The world (or null)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                  "short_description": "Set which world to apply to.\n",
                  "line": 374,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "setWorld",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.setWorld",
                  "outFile": "body.html#Body.prototype.setWorld"
                },
                {
                  "id": "Body#sleep",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "dt",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " Time to advance the idle time\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Boolean"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Time to advance the idle time\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Boolean"
                      ],
                      "description": " If `true`, the body will be forced to sleep. If `false`, the body will be forced to awake.\n\n     "
                    }
                  ],
                  "description": "Get and/or set whether the body is asleep.\n\nIf called with a time (in ms), the time will be added to the idle time and sleep conditions will be checked.",
                  "short_description": "Get and/or set whether the body is asleep.\n",
                  "line": 271,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "sleep",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.sleep",
                  "outFile": "body.html#Body.prototype.sleep"
                },
                {
                  "id": "Body#sleepCheck",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "dt",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " Time to advance the idle time\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Time to advance the idle time\n\n     "
                    }
                  ],
                  "description": "Check if the body should be sleeping.\n\nCall with no arguments if some event could possibly wake up the body. This will force the body to recheck.",
                  "short_description": "Check if the body should be sleeping.\n",
                  "line": 303,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "sleepCheck",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.sleepCheck",
                  "outFile": "body.html#Body.prototype.sleepCheck"
                },
                {
                  "id": "Body#state",
                  "type": "namespace",
                  "description": "The physical state container.\n\n- ``this.state.pos`` ([[Physics.vector]]) The position vector.\n- ``this.state.vel`` ([[Physics.vector]]) The velocity vector.\n- ``this.state.acc`` ([[Physics.vector]]) The acceleration vector.\n- ``this.state.angular.pos`` ([[Number]]) The angular position (in radians, positive is clockwise starting along the x axis)\n- ``this.state.angular.vel`` ([[Number]]) The angular velocity\n- ``this.state.angular.acc`` ([[Number]]) The angular acceleration\n\nProperties from the previous timestep are stored in:\n```javascript\nthis.state.old; // .pos, .vel, ...\n```",
                  "short_description": "The physical state container.\n",
                  "line": 117,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "state",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.state",
                  "outFile": "body.html#Body.prototype.state"
                },
                {
                  "id": "Body#styles",
                  "type": "namespace",
                  "related_to": "Physics.renderer",
                  "description": "The styles the renderer should use for creating the view.\n\nThe styles depend on the renderer. See [[Renderer#createView]] for style options.",
                  "short_description": "The styles the renderer should use for creating the view.\n",
                  "line": 260,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "styles",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.styles",
                  "outFile": "body.html#Body.prototype.styles"
                },
                {
                  "id": "Body#toBodyCoords",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "v",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The vector to transform\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The transformed vector\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to transform\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The transformed vector\n\n     "
                    }
                  ],
                  "description": "Transform a vector into coordinates relative to this body.",
                  "short_description": "Transform a vector into coordinates relative to this body.",
                  "line": 481,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "toBodyCoords",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.toBodyCoords",
                  "outFile": "body.html#Body.prototype.toBodyCoords"
                },
                {
                  "id": "Body#toWorldCoords",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "v",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The vector to transform\n\n      "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The transformed vector\n\n      "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to transform\n\n      "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The transformed vector\n\n      "
                    }
                  ],
                  "description": "Transform a vector from body coordinates into world coordinates.",
                  "short_description": "Transform a vector from body coordinates into world coordinates.",
                  "line": 492,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "toWorldCoords",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.toWorldCoords",
                  "outFile": "body.html#Body.prototype.toWorldCoords"
                },
                {
                  "id": "Body#treatment",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "String"
                        }
                      ]
                    }
                  ],
                  "description": "How the body is treated by the simulation.\n\nThe body can be `dynamic`, `kinematic` or `static` as\ndescribed by the [analogous box2d docs](http://www.box2d.org/manual.html#_Toc258082973).\n\n* _dynamic_ bodies are treated \"normally\". They are integrated, and collide, and all that.\n* _kinematic_ bodies are bodies that move at a specified velocity. Other bodies collide with them, but they don't bounce off of other bodies.\n* _static_ bodies just stand still. They are like obstacles.",
                  "short_description": "How the body is treated by the simulation.\n",
                  "line": 231,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "treatment",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.treatment",
                  "outFile": "body.html#Body.prototype.treatment"
                },
                {
                  "id": "Body#uid",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "Number"
                        }
                      ]
                    }
                  ],
                  "description": "The unique id for the body",
                  "short_description": "The unique id for the body",
                  "line": 162,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "uid",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.uid",
                  "outFile": "body.html#Body.prototype.uid"
                },
                {
                  "id": "Body#view",
                  "type": "constant",
                  "signatures": [
                    {
                      "returns": [
                        {
                          "type": "it_depends"
                        }
                      ]
                    }
                  ],
                  "related_to": "Physics.renderer",
                  "description": "Storage for use by the renderer.\n\nThe type of renderer will put different things in the view property.\nBasically, this is how the body \"looks\". It could be a HTMLElement, or\nan Image, etc...\n\nIf your body changes appearance (shape), you should modify this somehow\notherwise the renderer will keep using this same view. If you're letting\nthe renderer create the view for you, just set this to `undefined` if the\nbody gets modified in shape during the simulation.",
                  "short_description": "Storage for use by the renderer.\n",
                  "line": 252,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "view",
                  "name_prefix": "Body#",
                  "path": "Body.prototype.view",
                  "outFile": "body.html#Body.prototype.view"
                },
                {
                  "id": "Body.getCOM",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " The list of bodies\n\n "
                        },
                        {
                          "name": "com",
                          "optional": true,
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The center of mass position\n\n "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " The list of bodies\n\n "
                    },
                    {
                      "name": "com",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The center of mass position\n\n "
                    }
                  ],
                  "description": "Get center of mass position from list of bodies.",
                  "short_description": "Get center of mass position from list of bodies.",
                  "line": 517,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/body.js",
                  "name": "getCOM",
                  "name_prefix": "Body.",
                  "path": "Body.getCOM",
                  "outFile": "body.html#Body.getCOM"
                },
                {
                  "id": "CircleBody",
                  "type": "class",
                  "superclass": "Body",
                  "description": "Physics.body('circle')\n\nThe circle body has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
                  "short_description": "Physics.body('circle')\n",
                  "line": 24,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/circle.js",
                  "subclasses": [],
                  "name": "CircleBody",
                  "path": "CircleBody",
                  "outFile": "circle.html"
                },
                {
                  "id": "CompoundBody",
                  "type": "class",
                  "superclass": "Body",
                  "description": "Physics.body('compound')\n\nNot a body in itself. It's a container to group other bodies. The position of the body is the center of mass.\nIt must have at least one child before being added to the world.\n\nAdditional config options:\n\n- children: Array of [[Body]] objects.\n\nExample:\n\n```javascript\nvar thing = Physics.body('compound', {\n    // place the center of mass at (300, 200)\n    x: 300,\n    y: 200,\n    // the center of mass is automatically calculated and used to position the shape\n    children: [\n        body1,\n        body2,\n        // ...\n    ]\n});\n```",
                  "short_description": "Physics.body('compound')\n",
                  "line": 32,
                  "aliases": [],
                  "children": [
                    {
                      "id": "CompoundBody#addChild",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " The child to add\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " The child to add\n\n     "
                        }
                      ],
                      "description": "Add a body as a child.",
                      "short_description": "Add a body as a child.",
                      "line": 68,
                      "aliases": [],
                      "children": [],
                      "file": "src/bodies/compound.js",
                      "name": "addChild",
                      "name_prefix": "CompoundBody#",
                      "path": "CompoundBody.prototype.addChild",
                      "outFile": "compound.html#CompoundBody.prototype.addChild"
                    },
                    {
                      "id": "CompoundBody#addChildren",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "bodies",
                              "types": [
                                "Array"
                              ],
                              "description": " The list of children to add\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " The list of children to add\n\n     "
                        }
                      ],
                      "description": "Add an array of children to the compound.",
                      "short_description": "Add an array of children to the compound.",
                      "line": 80,
                      "aliases": [],
                      "children": [],
                      "file": "src/bodies/compound.js",
                      "name": "addChildren",
                      "name_prefix": "CompoundBody#",
                      "path": "CompoundBody.prototype.addChildren",
                      "outFile": "compound.html#CompoundBody.prototype.addChildren"
                    },
                    {
                      "id": "CompoundBody#clear",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "description": "Remove all children.",
                      "short_description": "Remove all children.",
                      "line": 142,
                      "aliases": [],
                      "children": [],
                      "file": "src/bodies/compound.js",
                      "name": "clear",
                      "name_prefix": "CompoundBody#",
                      "path": "CompoundBody.prototype.clear",
                      "outFile": "compound.html#CompoundBody.prototype.clear"
                    },
                    {
                      "id": "CompoundBody#refreshGeometry",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                      "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                      "line": 159,
                      "aliases": [],
                      "children": [],
                      "file": "src/bodies/compound.js",
                      "name": "refreshGeometry",
                      "name_prefix": "CompoundBody#",
                      "path": "CompoundBody.prototype.refreshGeometry",
                      "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
                    }
                  ],
                  "file": "src/bodies/compound.js",
                  "subclasses": [],
                  "name": "CompoundBody",
                  "path": "CompoundBody",
                  "outFile": "compound.html"
                },
                {
                  "id": "ConvexPolygonBody",
                  "type": "class",
                  "superclass": "Body",
                  "description": "Physics.body('convex-polygon')\n\nBody for convex polygons. The position of the body is the centroid of the polygon.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.body('convex-polygon', {\n    // place the centroid of the polygon at (300, 200)\n    x: 300,\n    y: 200,\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
                  "short_description": "Physics.body('convex-polygon')\n",
                  "line": 33,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/convex-polygon.js",
                  "subclasses": [],
                  "name": "ConvexPolygonBody",
                  "path": "ConvexPolygonBody",
                  "outFile": "convex-polygon.html"
                },
                {
                  "id": "PointBody",
                  "type": "class",
                  "superclass": "Body",
                  "alias_of": "Body",
                  "description": "Physics.body('point')\n\nThe point body represents a point.",
                  "short_description": "Physics.body('point')\n",
                  "line": 8,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/point.js",
                  "subclasses": [],
                  "name": "PointBody",
                  "path": "PointBody",
                  "outFile": "point.html"
                },
                {
                  "id": "RectangleBody",
                  "type": "class",
                  "superclass": "Body",
                  "description": "Physics.body('rectangle')\n\nBody for rectangles. The position of the body is the centroid of the rectangle.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rect = Physics.body('rectangle', {\n    // place the centroid of the rectangle at (300, 200)\n    x: 300,\n    y: 200,\n    width: 30,\n    height: 40\n});\n```",
                  "short_description": "Physics.body('rectangle')\n",
                  "line": 28,
                  "aliases": [],
                  "children": [],
                  "file": "src/bodies/rectangle.js",
                  "subclasses": [],
                  "name": "RectangleBody",
                  "path": "RectangleBody",
                  "outFile": "rectangle.html"
                }
              ],
              "file": "src/core/body.js",
              "subclasses": [
                "CircleBody",
                "CompoundBody",
                "ConvexPolygonBody",
                "PointBody",
                "RectangleBody"
              ],
              "name": "Body",
              "path": "Body",
              "outFile": "body.html"
            }
          ],
          "file": "src/core/body.js",
          "name": "body",
          "name_prefix": "Physics.",
          "path": "Physics.body",
          "outFile": "body.html#Physics.body"
        },
        {
          "id": "Physics.geometry",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the geometry to create\n\n "
                },
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration for that geometry ( depends on geometry ).\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Geometry"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the geometry to create\n\n "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration for that geometry ( depends on geometry ).\n\n "
            }
          ],
          "related_to": "Physics.util.decorator",
          "description": "Factory function for creating Geometries.\n\nVisit [the PhysicsJS wiki on Geometries](https://github.com/wellcaffeinated/PhysicsJS/wiki/Geometries)\nfor usage documentation.",
          "short_description": "Factory function for creating Geometries.\n",
          "line": 12,
          "aliases": [],
          "children": [
            {
              "id": "Physics.geometry.getPolygonArea",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of ([[Vectorish]]) vertices\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " The area (positive for clockwise ordering)\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The area (positive for clockwise ordering)\n\n "
                }
              ],
              "description": "Get the signed area of the polygon.",
              "short_description": "Get the signed area of the polygon.",
              "line": 202,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "getPolygonArea",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.getPolygonArea",
              "outFile": "geometry-helpers.html#Physics.geometry.getPolygonArea"
            },
            {
              "id": "Physics.geometry.getPolygonCentroid",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of ([[Vectorish]]) vertices\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The centroid\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Physics.vector",
                  "description": " The centroid\n\n "
                }
              ],
              "description": "Get the coordinates of the centroid.",
              "short_description": "Get the coordinates of the centroid.",
              "line": 240,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "getPolygonCentroid",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.getPolygonCentroid",
              "outFile": "geometry-helpers.html#Physics.geometry.getPolygonCentroid"
            },
            {
              "id": "Physics.geometry.getPolygonMOI",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of ([[Vectorish]]) vertices\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " The polygon's moment of inertia\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The polygon's moment of inertia\n\n "
                }
              ],
              "description": "Gets the moment of inertia of a convex polygon\n\nSee [List of moments of inertia](http://en.wikipedia.org/wiki/List_of_moments_of_inertia)\nfor more information.\n\n_Note_: we make the following assumpations:\n* mass is unitary (== 1)\n* axis of rotation is the origin",
              "short_description": "Gets the moment of inertia of a convex polygon\n",
              "line": 104,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "getPolygonMOI",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.getPolygonMOI",
              "outFile": "geometry-helpers.html#Physics.geometry.getPolygonMOI"
            },
            {
              "id": "Physics.geometry.isPointInPolygon",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "pt",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point to test\n\n "
                    },
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of ([[Vectorish]]) vertices\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if point `pt` is inside the polygon\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point to test\n\n "
                },
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if point `pt` is inside the polygon\n\n "
                }
              ],
              "description": "Check if point is inside polygon hull.",
              "short_description": "Check if point is inside polygon hull.",
              "line": 155,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "isPointInPolygon",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.isPointInPolygon",
              "outFile": "geometry-helpers.html#Physics.geometry.isPointInPolygon"
            },
            {
              "id": "Physics.geometry.isPolygonConvex",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "hull",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of ([[Vectorish]]) vertices\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "hull",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of ([[Vectorish]]) vertices\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
                }
              ],
              "description": "Determine if polygon hull is convex",
              "short_description": "Determine if polygon hull is convex",
              "line": 39,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "isPolygonConvex",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.isPolygonConvex",
              "outFile": "geometry-helpers.html#Physics.geometry.isPolygonConvex"
            },
            {
              "id": "Physics.geometry.nearestPointOnLine",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "pt",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point\n\n "
                    },
                    {
                      "name": "linePt1",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The first endpoint of the line\n\n "
                    },
                    {
                      "name": "linePt2",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The second endpoint of the line\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Vector",
                      "description": " The closest point\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point\n\n "
                },
                {
                  "name": "linePt1",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The first endpoint of the line\n\n "
                },
                {
                  "name": "linePt2",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The second endpoint of the line\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Vector",
                  "description": " The closest point\n\n "
                }
              ],
              "description": "Get the closest point on a discrete line to specified point.",
              "short_description": "Get the closest point on a discrete line to specified point.",
              "line": 291,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "nearestPointOnLine",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.nearestPointOnLine",
              "outFile": "geometry-helpers.html#Physics.geometry.nearestPointOnLine"
            },
            {
              "id": "Physics.geometry.regularPolygonVertices",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "sides",
                      "types": [
                        "Number"
                      ],
                      "description": " Number of sides the polygon has\n\n "
                    },
                    {
                      "name": "radius",
                      "types": [
                        "Number"
                      ],
                      "description": " Size from center to a vertex\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array",
                      "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "sides",
                  "types": [
                    "Number"
                  ],
                  "description": " Number of sides the polygon has\n\n "
                },
                {
                  "name": "radius",
                  "types": [
                    "Number"
                  ],
                  "description": " Size from center to a vertex\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
                }
              ],
              "description": "Generate a list of vertices for a regular polygon of any number of sides.",
              "short_description": "Generate a list of vertices for a regular polygon of any number of sides.",
              "line": 13,
              "aliases": [],
              "children": [],
              "file": "src/core/geometry-helpers.js",
              "name": "regularPolygonVertices",
              "name_prefix": "Physics.geometry.",
              "path": "Physics.geometry.regularPolygonVertices",
              "outFile": "geometry-helpers.html#Physics.geometry.regularPolygonVertices"
            },
            {
              "id": "Geometry",
              "type": "class",
              "belongs_to": "Physics.geometry",
              "description": "The base class for geometries created by [[Physics.geometry]] factory function.",
              "short_description": "The base class for geometries created by [[Physics.geometry]] factory function.",
              "line": 19,
              "aliases": [
                "PointGeometry"
              ],
              "children": [
                {
                  "id": "Geometry#aabb",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "angle",
                          "types": [
                            "Number"
                          ],
                          "description": " The angle to rotate the geometry\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " Bounding box values\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "angle",
                      "types": [
                        "Number"
                      ],
                      "description": " The angle to rotate the geometry\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Bounding box values\n\n     "
                    }
                  ],
                  "related_to": "Physics.aabb",
                  "description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
                  "short_description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
                  "line": 57,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/geometry.js",
                  "name": "aabb",
                  "name_prefix": "Geometry#",
                  "path": "Geometry.prototype.aabb",
                  "outFile": "geometry.html#Geometry.prototype.aabb"
                },
                {
                  "id": "Geometry#getFarthestCorePoint",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "dir",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " Direction to look\n\n     "
                        },
                        {
                          "name": "result",
                          "optional": true,
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " A vector to write result to. Speeds up calculations.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The farthest hull point in local coordinates\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "dir",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " Direction to look\n\n     "
                    },
                    {
                      "name": "result",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to write result to. Speeds up calculations.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The farthest hull point in local coordinates\n\n     "
                    }
                  ],
                  "related_to": "Geometry#getFarthestHullPoint",
                  "description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nThis does almost the same thing as [[Geometry#getFarthestHullPoint]]\nbut shrinks the shape by subtracting \"margin\" from it.\nReturn the position of the point on the \"core\" shape.",
                  "short_description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
                  "line": 104,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/geometry.js",
                  "name": "getFarthestCorePoint",
                  "name_prefix": "Geometry#",
                  "path": "Geometry.prototype.getFarthestCorePoint",
                  "outFile": "geometry.html#Geometry.prototype.getFarthestCorePoint"
                },
                {
                  "id": "Geometry#getFarthestHullPoint",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "dir",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " Direction to look\n\n     "
                        },
                        {
                          "name": "result",
                          "optional": true,
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " A vector to write result to. Speeds up calculations.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Physics.vector",
                          "description": " The farthest hull point in local coordinates\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "dir",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " Direction to look\n\n     "
                    },
                    {
                      "name": "result",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " A vector to write result to. Speeds up calculations.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Physics.vector",
                      "description": " The farthest hull point in local coordinates\n\n     "
                    }
                  ],
                  "description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nAssume all coordinates are relative to the geometry\ncentroid (IE: in the body frame).\n\nThis should take a direction vector then it should\ncalculate the location (in that frame of reference)\nof the point on the perimeter (hull) if you traveled\nin a straight line from the centroid in the provided\ndirection. The result should be returned/set just like\nit is in the other geometries.",
                  "short_description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
                  "line": 82,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/geometry.js",
                  "name": "getFarthestHullPoint",
                  "name_prefix": "Geometry#",
                  "path": "Geometry.prototype.getFarthestHullPoint",
                  "outFile": "geometry.html#Geometry.prototype.getFarthestHullPoint"
                },
                {
                  "id": "Geometry#init",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration options passed by the factory\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Initialization. Internal use.",
                  "short_description": "Initialization. Internal use.",
                  "line": 26,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/geometry.js",
                  "name": "init",
                  "name_prefix": "Geometry#",
                  "path": "Geometry.prototype.init",
                  "outFile": "geometry.html#Geometry.prototype.init"
                },
                {
                  "id": "Geometry#options",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n         "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ],
                  "related_to": "Physics.util.options",
                  "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                  "short_description": "Set options on this instance.\n",
                  "line": 44,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/geometry.js",
                  "name": "options",
                  "name_prefix": "Geometry#",
                  "path": "Geometry.prototype.options",
                  "outFile": "geometry.html#Geometry.prototype.options"
                },
                {
                  "id": "CircleGeometry",
                  "type": "class",
                  "superclass": "Geometry",
                  "description": "Physics.geometry('circle')\n\nThe circle geometry has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
                  "short_description": "Physics.geometry('circle')\n",
                  "line": 21,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/circle.js",
                  "subclasses": [],
                  "name": "CircleGeometry",
                  "path": "CircleGeometry",
                  "outFile": "circle.html"
                },
                {
                  "id": "CompoundGeometry",
                  "type": "class",
                  "superclass": "Geometry",
                  "description": "Physics.geometry('compound')\n\nGeometry for compound shapes.\n\nExample:\n\n```javascript\nvar thing = Physics.geometry('compound');\nthing.addChild( child, pos, rotation );\n```",
                  "short_description": "Physics.geometry('compound')\n",
                  "line": 15,
                  "aliases": [],
                  "children": [
                    {
                      "id": "CompoundGeometry#addChild",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "geometry",
                              "types": [
                                "Geometry"
                              ],
                              "description": " The child to add.\n\n     "
                            },
                            {
                              "name": "pos",
                              "types": [
                                "Physics.vector"
                              ],
                              "description": " The position to add the child at.\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The child to add.\n\n     "
                        },
                        {
                          "name": "pos",
                          "types": [
                            "Physics.vector"
                          ],
                          "description": " The position to add the child at.\n\n     "
                        },
                        {
                          "name": "angle",
                          "types": [
                            "Number"
                          ],
                          "description": " The rotation angle\n\n     "
                        }
                      ],
                      "description": "Add a child at relative position.",
                      "short_description": "Add a child at relative position.",
                      "line": 45,
                      "aliases": [],
                      "children": [],
                      "file": "src/geometries/compound.js",
                      "name": "addChild",
                      "name_prefix": "CompoundGeometry#",
                      "path": "CompoundGeometry.prototype.addChild",
                      "outFile": "compound.html#CompoundGeometry.prototype.addChild"
                    },
                    {
                      "id": "CompoundGeometry#clear",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "description": "Remove all children.",
                      "short_description": "Remove all children.",
                      "line": 62,
                      "aliases": [],
                      "children": [],
                      "file": "src/geometries/compound.js",
                      "name": "clear",
                      "name_prefix": "CompoundGeometry#",
                      "path": "CompoundGeometry.prototype.clear",
                      "outFile": "compound.html#CompoundGeometry.prototype.clear"
                    }
                  ],
                  "file": "src/geometries/compound.js",
                  "subclasses": [],
                  "name": "CompoundGeometry",
                  "path": "CompoundGeometry",
                  "outFile": "compound.html"
                },
                {
                  "id": "ConvexPolygonGeometry",
                  "type": "class",
                  "superclass": "Geometry",
                  "description": "Physics.geometry('convex-polygon')\n\nGeometry for convex polygons.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.geometry('convex-polygon', {\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
                  "short_description": "Physics.geometry('convex-polygon')\n",
                  "line": 27,
                  "aliases": [],
                  "children": [
                    {
                      "id": "ConvexPolygonGeometry#setVertices",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "hull",
                              "types": [
                                "Array"
                              ],
                              "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "hull",
                          "types": [
                            "Array"
                          ],
                          "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                        }
                      ],
                      "description": "Set the vertices of this polygon.",
                      "short_description": "Set the vertices of this polygon.",
                      "line": 61,
                      "aliases": [],
                      "children": [],
                      "file": "src/geometries/convex-polygon.js",
                      "name": "setVertices",
                      "name_prefix": "ConvexPolygonGeometry#",
                      "path": "ConvexPolygonGeometry.prototype.setVertices",
                      "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
                    }
                  ],
                  "file": "src/geometries/convex-polygon.js",
                  "subclasses": [],
                  "name": "ConvexPolygonGeometry",
                  "path": "ConvexPolygonGeometry",
                  "outFile": "convex-polygon.html"
                },
                {
                  "id": "PointGeometry",
                  "type": "class",
                  "superclass": "Geometry",
                  "alias_of": "Geometry",
                  "description": "Physics.geometry('point')\n\nThe point geometry represents a point.",
                  "short_description": "Physics.geometry('point')\n",
                  "line": 8,
                  "aliases": [],
                  "children": [],
                  "file": "src/geometries/point.js",
                  "subclasses": [],
                  "name": "PointGeometry",
                  "path": "PointGeometry",
                  "outFile": "point.html"
                },
                {
                  "id": "RectangleGeometry",
                  "type": "class",
                  "superclass": "Geometry",
                  "description": "Physics.geometry('rectangle')\n\nGeometry for rectangles.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rectGeo = Physics.geometry('rectangle', {\n    width: 30,\n    height: 40\n});\n```",
                  "short_description": "Physics.geometry('rectangle')\n",
                  "line": 22,
                  "aliases": [],
                  "children": [
                    {
                      "id": "RectangleGeometry#height",
                      "type": "constant",
                      "signatures": [
                        {
                          "returns": [
                            {
                              "type": "Number"
                            }
                          ]
                        }
                      ],
                      "description": "The height",
                      "short_description": "The height",
                      "line": 51,
                      "aliases": [],
                      "children": [],
                      "file": "src/geometries/rectangle.js",
                      "name": "height",
                      "name_prefix": "RectangleGeometry#",
                      "path": "RectangleGeometry.prototype.height",
                      "outFile": "rectangle.html#RectangleGeometry.prototype.height"
                    },
                    {
                      "id": "RectangleGeometry#width",
                      "type": "constant",
                      "signatures": [
                        {
                          "returns": [
                            {
                              "type": "Number"
                            }
                          ]
                        }
                      ],
                      "description": "The width",
                      "short_description": "The width",
                      "line": 45,
                      "aliases": [],
                      "children": [],
                      "file": "src/geometries/rectangle.js",
                      "name": "width",
                      "name_prefix": "RectangleGeometry#",
                      "path": "RectangleGeometry.prototype.width",
                      "outFile": "rectangle.html#RectangleGeometry.prototype.width"
                    }
                  ],
                  "file": "src/geometries/rectangle.js",
                  "subclasses": [],
                  "name": "RectangleGeometry",
                  "path": "RectangleGeometry",
                  "outFile": "rectangle.html"
                }
              ],
              "file": "src/core/geometry.js",
              "subclasses": [
                "CircleGeometry",
                "CompoundGeometry",
                "ConvexPolygonGeometry",
                "PointGeometry",
                "RectangleGeometry"
              ],
              "name": "Geometry",
              "path": "Geometry",
              "outFile": "geometry.html"
            }
          ],
          "file": "src/core/geometry.js",
          "name": "geometry",
          "name_prefix": "Physics.",
          "path": "Physics.geometry",
          "outFile": "geometry.html#Physics.geometry"
        },
        {
          "id": "Physics.gjk",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "support",
                  "arguments": [
                    {
                      "name": "axis"
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
                },
                {
                  "name": "seed",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
                },
                {
                  "name": "checkOverlapOnly",
                  "optional": true,
                  "types": [
                    "Boolean"
                  ],
                  "description": " only check whether there is an overlap, don't calculate the depth\n\n "
                },
                {
                  "name": "debugFn",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " For debugging. Called at every iteration with the current simplex.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "support",
              "types": [
                "Function"
              ],
              "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
            },
            {
              "name": "axis",
              "types": [
                "Physics.vector"
              ],
              "description": " The axis to search\n\n "
            },
            {
              "name": "seed",
              "types": [
                "Physics.vector"
              ],
              "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
            },
            {
              "name": "checkOverlapOnly",
              "types": [
                "Boolean"
              ],
              "description": " only check whether there is an overlap, don't calculate the depth\n\n "
            },
            {
              "name": "debugFn",
              "types": [
                "Function"
              ],
              "description": " For debugging. Called at every iteration with the current simplex.\n\n "
            }
          ],
          "description": "Implementation agnostic GJK function.\n\nGilbert–Johnson–Keerthi object collison algorithm\nFor general information about GJK see:\n- [www.codezealot.org/archives/88](http://www.codezealot.org/archives/88)\n- [mollyrocket.com/849](http://mollyrocket.com/849)\n\nThe algorithm information returned:\n```javascript\n{\n    overlap: Boolean,\n    simplex: [] // array containing simplex points as simple x/y objects\n}\n```",
          "short_description": "Implementation agnostic GJK function.\n",
          "line": 134,
          "aliases": [],
          "children": [],
          "file": "src/math/gjk.js",
          "name": "gjk",
          "name_prefix": "Physics.",
          "path": "Physics.gjk",
          "outFile": "gjk.html#Physics.gjk"
        },
        {
          "id": "Physics.integrator",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the integrator to create\n\n "
                },
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Integrator"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the integrator to create\n\n "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
            }
          ],
          "related_to": "Physics.util.decorator",
          "description": "Factory function for creating Integrators.\n\nVisit [the PhysicsJS wiki on Integrators](https://github.com/wellcaffeinated/PhysicsJS/wiki/Integrators)\nfor usage documentation.",
          "short_description": "Factory function for creating Integrators.\n",
          "line": 31,
          "aliases": [],
          "children": [
            {
              "id": "Integrator",
              "type": "class",
              "belongs_to": "Physics.integrator",
              "description": "The base class for integrators created by [[Physics.integrator]] factory function.",
              "short_description": "The base class for integrators created by [[Physics.integrator]] factory function.",
              "line": 38,
              "aliases": [],
              "children": [
                {
                  "id": "Integrator#connect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Physics.world"
                          ],
                          "description": " The world to connect to\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to connect to\n\n     "
                    }
                  ],
                  "description": "Connect to a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
                  "short_description": "Connect to a world.\n",
                  "line": 134,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "connect",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.connect",
                  "outFile": "integrator.html#Integrator.prototype.connect"
                },
                {
                  "id": "Integrator#disconnect",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Physics.world"
                          ],
                          "description": " The world to disconnect from\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Physics.world"
                      ],
                      "description": " The world to disconnect from\n\n     "
                    }
                  ],
                  "description": "Disconnect from a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
                  "short_description": "Disconnect from a world.\n",
                  "line": 145,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "disconnect",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.disconnect",
                  "outFile": "integrator.html#Integrator.prototype.disconnect"
                },
                {
                  "id": "Integrator#init",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration options passed by the factory\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Initialization. Internal use.",
                  "short_description": "Initialization. Internal use.",
                  "line": 45,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "init",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.init",
                  "outFile": "integrator.html#Integrator.prototype.init"
                },
                {
                  "id": "Integrator#integrate",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " List of bodies to integrate\n\n     "
                        },
                        {
                          "name": "dt",
                          "types": [
                            "Number"
                          ],
                          "description": " Timestep size\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ],
                  "description": "Integrate bodies by timestep.\n\nWill emit `integrate:velocities` and `integrate:positions`\nevents on the world.",
                  "short_description": "Integrate bodies by timestep.\n",
                  "line": 44,
                  "aliases": [],
                  "children": [],
                  "file": "src/integrators/velocity-verlet.js",
                  "name": "integrate",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.integrate",
                  "outFile": "velocity-verlet.html#Integrator.prototype.integrate"
                },
                {
                  "id": "Integrator#integratePositions",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " List of bodies to integrate\n\n     "
                        },
                        {
                          "name": "dt",
                          "types": [
                            "Number"
                          ],
                          "description": " Timestep size\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ],
                  "description": "Just integrate the positions.\n\nCalled after [[Integrator#integrateVelocities]].\n\nShould be overridden when creating integrators.",
                  "short_description": "Just integrate the positions.\n",
                  "line": 172,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "integratePositions",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.integratePositions",
                  "outFile": "integrator.html#Integrator.prototype.integratePositions"
                },
                {
                  "id": "Integrator#integrateVelocities",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " List of bodies to integrate\n\n     "
                        },
                        {
                          "name": "dt",
                          "types": [
                            "Number"
                          ],
                          "description": " Timestep size\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " List of bodies to integrate\n\n     "
                    },
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " Timestep size\n\n     "
                    }
                  ],
                  "description": "Just integrate the velocities.\n\nShould be overridden when creating integrators.",
                  "short_description": "Just integrate the velocities.\n",
                  "line": 156,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "integrateVelocities",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.integrateVelocities",
                  "outFile": "integrator.html#Integrator.prototype.integrateVelocities"
                },
                {
                  "id": "Integrator#options",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The options to set as an object\n\n         "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object",
                          "description": " The options\n\n         "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n         "
                    }
                  ],
                  "related_to": "Physics.util.options",
                  "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                  "short_description": "Set options on this instance.\n",
                  "line": 63,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "options",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.options",
                  "outFile": "integrator.html#Integrator.prototype.options"
                },
                {
                  "id": "Integrator#setWorld",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Object"
                          ],
                          "description": " The world (or null)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                  "short_description": "Set which world to apply to.\n",
                  "line": 75,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/integrator.js",
                  "name": "setWorld",
                  "name_prefix": "Integrator#",
                  "path": "Integrator.prototype.setWorld",
                  "outFile": "integrator.html#Integrator.prototype.setWorld"
                },
                {
                  "id": "ImprovedEuler",
                  "type": "class",
                  "superclass": "Integrator",
                  "description": "`Physics.integrator('improved-euler')`.\n\nThe improved euler integrator.",
                  "short_description": "`Physics.integrator('improved-euler')`.\n",
                  "line": 11,
                  "aliases": [],
                  "children": [],
                  "file": "src/integrators/improved-euler.js",
                  "subclasses": [],
                  "name": "ImprovedEuler",
                  "path": "ImprovedEuler",
                  "outFile": "improved-euler.html"
                },
                {
                  "id": "VelocityVerlet",
                  "type": "class",
                  "superclass": "Integrator",
                  "description": "`Physics.integrator('velocity-verlet')`.\n\nThe velocity-verlet integrator.",
                  "short_description": "`Physics.integrator('velocity-verlet')`.\n",
                  "line": 26,
                  "aliases": [],
                  "children": [],
                  "file": "src/integrators/velocity-verlet.js",
                  "subclasses": [],
                  "name": "VelocityVerlet",
                  "path": "VelocityVerlet",
                  "outFile": "velocity-verlet.html"
                },
                {
                  "id": "Verlet",
                  "type": "class",
                  "superclass": "Integrator",
                  "description": "`Physics.integrator('verlet')`.\n\nThe verlet integrator.",
                  "short_description": "`Physics.integrator('verlet')`.\n",
                  "line": 26,
                  "aliases": [],
                  "children": [],
                  "file": "src/integrators/verlet.js",
                  "subclasses": [],
                  "name": "Verlet",
                  "path": "Verlet",
                  "outFile": "verlet.html"
                }
              ],
              "file": "src/core/integrator.js",
              "subclasses": [
                "ImprovedEuler",
                "VelocityVerlet",
                "Verlet"
              ],
              "name": "Integrator",
              "path": "Integrator",
              "outFile": "integrator.html"
            }
          ],
          "file": "src/core/integrator.js",
          "name": "integrator",
          "name_prefix": "Physics.",
          "path": "Physics.integrator",
          "outFile": "integrator.html#Physics.integrator"
        },
        {
          "id": "Physics.noConflict",
          "type": "class method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Physics"
                }
              ]
            }
          ],
          "description": "Restore the original reference to the global window.Physics variable.\n\nDoes nothing if PhysicsJS doesn't have a reference in global scope",
          "short_description": "Restore the original reference to the global window.Physics variable.\n",
          "line": 12,
          "aliases": [],
          "children": [],
          "file": "src/util/noconflict.js",
          "name": "noConflict",
          "name_prefix": "Physics.",
          "path": "Physics.noConflict",
          "outFile": "noconflict.html#Physics.noConflict"
        },
        {
          "id": "Physics.query",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "rules",
                  "types": [
                    "Object"
                  ],
                  "description": " The mongodb-like search rules. (See description).\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The test function\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "rules",
              "types": [
                "Object"
              ],
              "description": " The mongodb-like search rules. (See description).\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The test function\n\n "
            }
          ],
          "related_to": "Physics.world#find",
          "description": "Creates a function that can be used to perform tests on objects.\n\nThe test function will return a [[Boolean]]; `true` if the object matches the tests.\n\nQuery rules are mongodb-like. You can specify a hash of values to match like this:\n\n```javascript\n{\n    foo: 'bar',\n    baz: 2,\n    some: {\n        nested: 'value'\n    }\n}\n```\n\nAnd they will all need to match (it's an AND rule).\n\nYou can also use operators for more versatility. The operators you can use include:\n\n- $eq: Test if some property is equal to a value (this is done by default, and is thus redundant)\n- $ne: Test if some property is _NOT_ equal to a value\n- $in: Test if some value (or array of values) is one of the specified array of values\n- $nin: Test if some value (or array of values) is _NOT_ one of the specified array of values\n- $at: Test if a body's [[Physics.aabb]] includes specified point. It's a primative hit-test.\n\nExample:\n\n```javascript\nvar wheelsArray = [];\n\nvar queryFn = Physics.query({\n    name: 'circle', // only circles\n    $nin: wheelsArray, // not in the wheelsArray\n    labels: { $in: [ 'player', 'monster' ] } // that have player OR monster labels\n});\n\nvar obj = {\n    name: 'circle',\n    labels: [ 'round' ]\n};\n\nqueryFn( obj ); // -> false\n// give it a player tag\nobj.labels.push('player');\nqueryFn( obj ); // -> true\n// put it inside the wheelsArray\nwheelsArray.push( obj );\nqueryFn( obj ); // -> false\n```",
          "short_description": "Creates a function that can be used to perform tests on objects.\n",
          "line": 262,
          "aliases": [],
          "children": [],
          "file": "src/core/query.js",
          "name": "query",
          "name_prefix": "Physics.",
          "path": "Physics.query",
          "outFile": "query.html#Physics.query"
        },
        {
          "id": "Physics.renderer",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the renderer to create\n\n "
                },
                {
                  "name": "options",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Renderer"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " The name of the renderer to create\n\n "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
            }
          ],
          "related_to": "Physics.util.decorator",
          "description": "Factory function for creating Renderers.\n\nVisit [the PhysicsJS wiki on Renderers](https://github.com/wellcaffeinated/PhysicsJS/wiki/Renderers)\nfor usage documentation.",
          "short_description": "Factory function for creating Renderers.\n",
          "line": 44,
          "aliases": [],
          "children": [
            {
              "id": "Renderer",
              "type": "class",
              "belongs_to": "Physics.renderer",
              "description": "The base class for renderers created by [[Physics.renderer]] factory function.",
              "short_description": "The base class for renderers created by [[Physics.renderer]] factory function.",
              "line": 51,
              "aliases": [],
              "children": [
                {
                  "id": "Renderer#createView",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " geometry The geometry\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object",
                            "String"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Mixed",
                          "description": " Whatever the renderer needs to render the body.\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "geometry",
                      "types": [
                        "Geometry"
                      ],
                      "description": " geometry The geometry\n\n     "
                    },
                    {
                      "name": "styles",
                      "types": [
                        "Object",
                        "String"
                      ],
                      "description": " The styles configuration\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Mixed",
                      "description": " Whatever the renderer needs to render the body.\n\n     "
                    }
                  ],
                  "description": "Create a view for the specified geometry.\n\nThe view is used to render the body. It is a cached version\nof the body that gets moved and rotated according to the simulation.\n\nThe styles are used to modify the appearance of the view.\nThey depend on the renderer.\n\nOverride this when creating renderers.",
                  "short_description": "Create a view for the specified geometry.\n",
                  "line": 182,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "createView",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.createView",
                  "outFile": "renderer.html#Renderer.prototype.createView"
                },
                {
                  "id": "Renderer#drawBody",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Object"
                          ],
                          "description": " The body to draw\n\n     "
                        },
                        {
                          "name": "view",
                          "types": [
                            "Object"
                          ],
                          "description": " The view for the body\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Object"
                      ],
                      "description": " The body to draw\n\n     "
                    },
                    {
                      "name": "view",
                      "types": [
                        "Object"
                      ],
                      "description": " The view for the body\n\n     "
                    }
                  ],
                  "description": "Draw specified body using specified view.\n\nOverride this when creating renderers.",
                  "short_description": "Draw specified body using specified view.\n",
                  "line": 226,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "drawBody",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.drawBody",
                  "outFile": "renderer.html#Renderer.prototype.drawBody"
                },
                {
                  "id": "Renderer#drawMeta",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "meta",
                          "types": [
                            "Object"
                          ],
                          "description": " The meta data\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "meta",
                      "types": [
                        "Object"
                      ],
                      "description": " The meta data\n\n     "
                    }
                  ],
                  "description": "Draw the meta data.\n\nThe meta data will look like this:\n\n```javascript\nmeta = {\n    fps: 60, // the frames per second\n    ipf: 4 // the number of iterations per frame\n};\n```\n\nOverride this when creating renderers.",
                  "short_description": "Draw the meta data.\n",
                  "line": 209,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "drawMeta",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.drawMeta",
                  "outFile": "renderer.html#Renderer.prototype.drawMeta"
                },
                {
                  "id": "Renderer#init",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration options passed by the factory\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration options passed by the factory\n\n     "
                    }
                  ],
                  "internal": true,
                  "description": "Initialization. Internal use.",
                  "short_description": "Initialization. Internal use.",
                  "line": 58,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "init",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.init",
                  "outFile": "renderer.html#Renderer.prototype.init"
                },
                {
                  "id": "Renderer#render",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "bodies",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of bodies in the world (by reference!)\n\n     "
                        },
                        {
                          "name": "meta",
                          "types": [
                            "Object"
                          ],
                          "description": " meta information\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "bodies",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies in the world (by reference!)\n\n     "
                    },
                    {
                      "name": "meta",
                      "types": [
                        "Object"
                      ],
                      "description": " meta information\n\n     "
                    }
                  ],
                  "description": "Render the world bodies and meta. Called by world.render()",
                  "short_description": "Render the world bodies and meta. Called by world.render()",
                  "line": 129,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "render",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.render",
                  "outFile": "renderer.html#Renderer.prototype.render"
                },
                {
                  "id": "Renderer#resize",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "width",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The width in px\n\n     "
                        },
                        {
                          "name": "height",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The height in px\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "width",
                      "types": [
                        "Number"
                      ],
                      "description": " The width in px\n\n     "
                    },
                    {
                      "name": "height",
                      "types": [
                        "Number"
                      ],
                      "description": " The height in px\n\n     "
                    }
                  ],
                  "description": "Set the dimensions of the renderer.\n\nIf no dimensions are specified it will auto resize.",
                  "short_description": "Set the dimensions of the renderer.\n",
                  "line": 87,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "resize",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.resize",
                  "outFile": "renderer.html#Renderer.prototype.resize"
                },
                {
                  "id": "Renderer#setWorld",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "world",
                          "types": [
                            "Object"
                          ],
                          "description": " The world (or null)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "world",
                      "types": [
                        "Object"
                      ],
                      "description": " The world (or null)\n\n     "
                    }
                  ],
                  "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                  "short_description": "Set which world to apply to.\n",
                  "line": 107,
                  "aliases": [],
                  "children": [],
                  "file": "src/core/renderer.js",
                  "name": "setWorld",
                  "name_prefix": "Renderer#",
                  "path": "Renderer.prototype.setWorld",
                  "outFile": "renderer.html#Renderer.prototype.setWorld"
                },
                {
                  "id": "CanvasRenderer",
                  "type": "class",
                  "superclass": "Renderer",
                  "description": "Physics.renderer('canvas')\n\nRenderer that uses HTMLCanvas to render the world bodies.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50\n   }\n});\n```",
                  "short_description": "Physics.renderer('canvas')\n",
                  "line": 68,
                  "aliases": [],
                  "children": [
                    {
                      "id": "CanvasRenderer#addLayer",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "id",
                              "types": [
                                "String"
                              ],
                              "description": " The id for the layer\n\n     "
                            },
                            {
                              "name": "el",
                              "optional": true,
                              "types": [
                                "HTMLElement"
                              ],
                              "description": " The canvas element to use for this layer\n\n     "
                            },
                            {
                              "name": "opts",
                              "optional": true,
                              "types": [
                                "Object"
                              ],
                              "description": " The options for this layer (see below)\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Layer"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        },
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The canvas element to use for this layer\n\n     "
                        },
                        {
                          "name": "opts",
                          "types": [
                            "Object"
                          ],
                          "description": " The options for this layer (see below)\n\n     "
                        }
                      ],
                      "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
                      "short_description": "Create a new layer.\n",
                      "line": 226,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "addLayer",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.addLayer",
                      "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
                    },
                    {
                      "id": "CanvasRenderer#draw",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "geometry",
                              "types": [
                                "Geometry"
                              ],
                              "description": " The shape to draw\n\n     "
                            },
                            {
                              "name": "styles",
                              "optional": true,
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            },
                            {
                              "name": "offset",
                              "optional": true,
                              "types": [
                                "Vectorish"
                              ],
                              "description": " The offset from center\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The shape to draw\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        },
                        {
                          "name": "offset",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The offset from center\n\n     "
                        }
                      ],
                      "description": "Draw a geometry to a context.",
                      "short_description": "Draw a geometry to a context.",
                      "line": 630,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "draw",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.draw",
                      "outFile": "canvas.html#CanvasRenderer.prototype.draw"
                    },
                    {
                      "id": "CanvasRenderer#drawCircle",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "x",
                              "types": [
                                "Number"
                              ],
                              "description": " The x coord\n\n     "
                            },
                            {
                              "name": "y",
                              "types": [
                                "Number"
                              ],
                              "description": " The y coord\n\n     "
                            },
                            {
                              "name": "r",
                              "types": [
                                "Number"
                              ],
                              "description": " The circle radius\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "r",
                          "types": [
                            "Number"
                          ],
                          "description": " The circle radius\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ],
                      "description": "Draw a circle to specified canvas context.",
                      "short_description": "Draw a circle to specified canvas context.",
                      "line": 514,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "drawCircle",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.drawCircle",
                      "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
                    },
                    {
                      "id": "CanvasRenderer#drawLine",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "from",
                              "types": [
                                "Vectorish"
                              ],
                              "description": " The starting pt\n\n     "
                            },
                            {
                              "name": "to",
                              "types": [
                                "Vectorish"
                              ],
                              "description": " The ending pt\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "from",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The starting pt\n\n     "
                        },
                        {
                          "name": "to",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " The ending pt\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ],
                      "description": "Draw a line onto specified canvas context.",
                      "short_description": "Draw a line onto specified canvas context.",
                      "line": 599,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "drawLine",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.drawLine",
                      "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
                    },
                    {
                      "id": "CanvasRenderer#drawPolygon",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "verts",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of [[Vectorish]] vertices\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "verts",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of [[Vectorish]] vertices\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ],
                      "description": "Draw a polygon to specified canvas context.",
                      "short_description": "Draw a polygon to specified canvas context.",
                      "line": 534,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "drawPolygon",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.drawPolygon",
                      "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
                    },
                    {
                      "id": "CanvasRenderer#drawRect",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "x",
                              "types": [
                                "Number"
                              ],
                              "description": " The x coord\n\n     "
                            },
                            {
                              "name": "y",
                              "types": [
                                "Number"
                              ],
                              "description": " The y coord\n\n     "
                            },
                            {
                              "name": "width",
                              "types": [
                                "Number"
                              ],
                              "description": " The width\n\n     "
                            },
                            {
                              "name": "height",
                              "types": [
                                "Number"
                              ],
                              "description": " The height\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "width",
                          "types": [
                            "Number"
                          ],
                          "description": " The width\n\n     "
                        },
                        {
                          "name": "height",
                          "types": [
                            "Number"
                          ],
                          "description": " The height\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ],
                      "description": "Draw a rectangle to specified canvas context.",
                      "short_description": "Draw a rectangle to specified canvas context.",
                      "line": 575,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "drawRect",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.drawRect",
                      "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
                    },
                    {
                      "id": "CanvasRenderer#layer",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "id",
                              "types": [
                                "String"
                              ],
                              "description": " The id for the layer\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Layer"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        }
                      ],
                      "description": "Get the layer by id.",
                      "short_description": "Get the layer by id.",
                      "line": 198,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "layer",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.layer",
                      "outFile": "canvas.html#CanvasRenderer.prototype.layer"
                    },
                    {
                      "id": "CanvasRenderer#removeLayer",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "id",
                              "types": [
                                "String"
                              ],
                              "description": " The id for the layer\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        },
                        {
                          "arguments": [
                            {
                              "name": "layer",
                              "types": [
                                "Layer"
                              ],
                              "description": " The layer\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "id",
                          "types": [
                            "String"
                          ],
                          "description": " The id for the layer\n\n     "
                        },
                        {
                          "name": "layer",
                          "types": [
                            "Layer"
                          ],
                          "description": " The layer\n\n     "
                        }
                      ],
                      "description": "Remove a layer.",
                      "short_description": "Remove a layer.",
                      "line": 444,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "removeLayer",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.removeLayer",
                      "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
                    },
                    {
                      "id": "CanvasRenderer#resize",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "width",
                              "types": [
                                "Number"
                              ],
                              "description": " The width\n\n     "
                            },
                            {
                              "name": "height",
                              "types": [
                                "Number"
                              ],
                              "description": " The height\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "width",
                          "types": [
                            "Number"
                          ],
                          "description": " The width\n\n     "
                        },
                        {
                          "name": "height",
                          "types": [
                            "Number"
                          ],
                          "description": " The height\n\n     "
                        }
                      ],
                      "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                      "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                      "line": 464,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "resize",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.resize",
                      "outFile": "canvas.html#CanvasRenderer.prototype.resize"
                    },
                    {
                      "id": "CanvasRenderer#setStyle",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "styles",
                              "types": [
                                "Object",
                                "String"
                              ],
                              "description": " Styles to set on the canvas context\n\n     "
                            },
                            {
                              "name": "ctx",
                              "optional": true,
                              "types": [
                                "Canvas2DContext"
                              ],
                              "description": " The canvas context\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "styles",
                          "types": [
                            "Object",
                            "String"
                          ],
                          "description": " Styles to set on the canvas context\n\n     "
                        },
                        {
                          "name": "ctx",
                          "types": [
                            "Canvas2DContext"
                          ],
                          "description": " The canvas context\n\n     "
                        }
                      ],
                      "description": "Set styles on the specified canvas context (or main context).",
                      "short_description": "Set styles on the specified canvas context (or main context).",
                      "line": 488,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/canvas.js",
                      "name": "setStyle",
                      "name_prefix": "CanvasRenderer#",
                      "path": "CanvasRenderer.prototype.setStyle",
                      "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
                    },
                    {
                      "id": "Layer",
                      "type": "class",
                      "belongs_to": "CanvasRenderer",
                      "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
                      "short_description": "A rendering layer for the canvas renderer.\n",
                      "line": 235,
                      "aliases": [],
                      "children": [
                        {
                          "id": "Layer#addToStack",
                          "type": "instance method",
                          "signatures": [
                            {
                              "arguments": [
                                {
                                  "name": "arr",
                                  "types": [
                                    "Array"
                                  ],
                                  "description": " Array of bodies to add\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            },
                            {
                              "arguments": [
                                {
                                  "name": "body",
                                  "types": [
                                    "Body"
                                  ],
                                  "description": " Body to add\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            }
                          ],
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " Body to add\n\n         "
                            },
                            {
                              "name": "arr",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of bodies to add\n\n         "
                            }
                          ],
                          "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
                          "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
                          "line": 324,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "addToStack",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.addToStack",
                          "outFile": "canvas.html#Layer.prototype.addToStack"
                        },
                        {
                          "id": "Layer#bodies",
                          "type": "constant",
                          "signatures": [
                            {
                              "returns": [
                                {
                                  "type": "Array"
                                }
                              ]
                            }
                          ],
                          "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
                          "short_description": "The Bodies this layer is rendering.\n",
                          "line": 300,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "bodies",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.bodies",
                          "outFile": "canvas.html#Layer.prototype.bodies"
                        },
                        {
                          "id": "Layer#el",
                          "type": "constant",
                          "signatures": [
                            {
                              "returns": [
                                {
                                  "type": "HTMLElement"
                                }
                              ]
                            }
                          ],
                          "description": "The layer's Canvas",
                          "short_description": "The layer's Canvas",
                          "line": 251,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "el",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.el",
                          "outFile": "canvas.html#Layer.prototype.el"
                        },
                        {
                          "id": "Layer#id",
                          "type": "constant",
                          "signatures": [
                            {
                              "returns": [
                                {
                                  "type": "String"
                                }
                              ]
                            }
                          ],
                          "description": "The layer's ID",
                          "short_description": "The layer's ID",
                          "line": 245,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "id",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.id",
                          "outFile": "canvas.html#Layer.prototype.id"
                        },
                        {
                          "id": "Layer#options",
                          "type": "instance method",
                          "signatures": [
                            {
                              "arguments": [
                                {
                                  "name": "options",
                                  "types": [
                                    "Object"
                                  ],
                                  "description": " The options to set as an object\n\n                  "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "Object",
                                  "description": " The options\n\n                  "
                                }
                              ]
                            }
                          ],
                          "arguments": [
                            {
                              "name": "options",
                              "types": [
                                "Object"
                              ],
                              "description": " The options to set as an object\n\n                  "
                            }
                          ],
                          "returns": [
                            {
                              "type": "Object",
                              "description": " The options\n\n                  "
                            }
                          ],
                          "related_to": "Physics.util.options",
                          "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                          "short_description": "Set options on this layer.\n",
                          "line": 267,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "options",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.options",
                          "outFile": "canvas.html#Layer.prototype.options"
                        },
                        {
                          "id": "Layer#removeFromStack",
                          "type": "instance method",
                          "signatures": [
                            {
                              "arguments": [
                                {
                                  "name": "arr",
                                  "types": [
                                    "Array"
                                  ],
                                  "description": " Array of bodies to remove\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            },
                            {
                              "arguments": [
                                {
                                  "name": "body",
                                  "types": [
                                    "Body"
                                  ],
                                  "description": " Body to remove\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            }
                          ],
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " Body to remove\n\n         "
                            },
                            {
                              "name": "arr",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of bodies to remove\n\n         "
                            }
                          ],
                          "description": "Remove body (bodies) from the rendering stack for this layer.",
                          "short_description": "Remove body (bodies) from the rendering stack for this layer.",
                          "line": 342,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "removeFromStack",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.removeFromStack",
                          "outFile": "canvas.html#Layer.prototype.removeFromStack"
                        },
                        {
                          "id": "Layer#render",
                          "type": "instance method",
                          "signatures": [
                            {
                              "arguments": [
                                {
                                  "name": "clear",
                                  "optional": true,
                                  "types": [
                                    "Boolean"
                                  ],
                                  "description": " Clear the canvas (default: `true`)\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            }
                          ],
                          "arguments": [
                            {
                              "name": "clear",
                              "types": [
                                "Boolean"
                              ],
                              "description": " Clear the canvas (default: `true`)\n\n         "
                            }
                          ],
                          "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
                          "short_description": "Render the bodies in this layer's stack.\n",
                          "line": 373,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "render",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.render",
                          "outFile": "canvas.html#Layer.prototype.render"
                        },
                        {
                          "id": "Layer#reset",
                          "type": "instance method",
                          "signatures": [
                            {
                              "arguments": [
                                {
                                  "name": "arr",
                                  "optional": true,
                                  "types": [
                                    "Array"
                                  ],
                                  "description": " Array to replace the current stack of Bodies.\n\n         "
                                }
                              ],
                              "returns": [
                                {
                                  "type": "this"
                                }
                              ]
                            }
                          ],
                          "arguments": [
                            {
                              "name": "arr",
                              "types": [
                                "Array"
                              ],
                              "description": " Array to replace the current stack of Bodies.\n\n         "
                            }
                          ],
                          "description": "Reset the stack.",
                          "short_description": "Reset the stack.",
                          "line": 308,
                          "aliases": [],
                          "children": [],
                          "file": "src/renderers/canvas.js",
                          "name": "reset",
                          "name_prefix": "Layer#",
                          "path": "Layer.prototype.reset",
                          "outFile": "canvas.html#Layer.prototype.reset"
                        }
                      ],
                      "file": "src/renderers/canvas.js",
                      "subclasses": [],
                      "name": "Layer",
                      "path": "Layer",
                      "outFile": "canvas.html"
                    }
                  ],
                  "file": "src/renderers/canvas.js",
                  "subclasses": [],
                  "name": "CanvasRenderer",
                  "path": "CanvasRenderer",
                  "outFile": "canvas.html"
                },
                {
                  "id": "DebugRenderer",
                  "type": "class",
                  "superclass": "Renderer",
                  "description": "Physics.renderer('debug')\n\nExtends canvas renderer with special debugging functionality.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n- drawAABB: whether or not to draw bounding boxes. (default: `true`)\n- drawRealPosition: whether or not to draw the non-interpolated position of bodies. (default: `false`)\n- drawIntervals: whether or not to draw the broadphase (sweep-prune) intervals. (default: `false`)\n- drawContacts: whether or not to draw contact points. (default: `false`)\n- drawSleepState: whether or not to highlight sleeping bodies. (default: `false`)\n- drawBodyState: whether or not to show body position and velocity. (default: `false`)\n- aabbColor: the color of AABBs\n- realBodyStyle: styles used to draw the image of the body at its true non-interpolated position\n- intervalMinColor: color of interval minima\n- intervalMaxColor: color of interval maxima\n- mtvColor: color of minimum transit vector for contacts (overlaps)\n- contactColor: color of contact points\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```",
                  "short_description": "Physics.renderer('debug')\n",
                  "line": 52,
                  "aliases": [],
                  "children": [],
                  "file": "src/renderers/debug.js",
                  "subclasses": [],
                  "name": "DebugRenderer",
                  "path": "DebugRenderer",
                  "outFile": "debug.html"
                },
                {
                  "id": "DomRenderer",
                  "type": "class",
                  "superclass": "Renderer",
                  "description": "Physics.renderer('dom')\n\nRenderer that manipulates DOM elements according to the physics simulation. Very primative...",
                  "short_description": "Physics.renderer('dom')\n",
                  "line": 8,
                  "aliases": [],
                  "children": [
                    {
                      "id": "DomRenderer#attach",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "HTMLElement",
                                "Object"
                              ],
                              "description": " DOM node or event data (`data.body`)\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "HTMLElement",
                            "Object"
                          ],
                          "description": " DOM node or event data (`data.body`)\n\n     "
                        }
                      ],
                      "description": "Event callback to attach a node to the viewport",
                      "short_description": "Event callback to attach a node to the viewport",
                      "line": 242,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/dom.js",
                      "name": "attach",
                      "name_prefix": "DomRenderer#",
                      "path": "DomRenderer.prototype.attach",
                      "outFile": "dom.html#DomRenderer.prototype.attach"
                    },
                    {
                      "id": "DomRenderer#circleProperties",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "el",
                              "types": [
                                "HTMLElement"
                              ],
                              "description": " The element\n\n     "
                            },
                            {
                              "name": "geometry",
                              "types": [
                                "Geometry"
                              ],
                              "description": " The body's geometry\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Set dom element style properties for a circle.",
                      "short_description": "Set dom element style properties for a circle.",
                      "line": 136,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/dom.js",
                      "name": "circleProperties",
                      "name_prefix": "DomRenderer#",
                      "path": "DomRenderer.prototype.circleProperties",
                      "outFile": "dom.html#DomRenderer.prototype.circleProperties"
                    },
                    {
                      "id": "DomRenderer#detach",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "HTMLElement",
                                "Object"
                              ],
                              "description": " DOM node or event data (`data.body`)\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "HTMLElement",
                            "Object"
                          ],
                          "description": " DOM node or event data (`data.body`)\n\n     "
                        }
                      ],
                      "description": "Event callback to detach a node from the DOM",
                      "short_description": "Event callback to detach a node from the DOM",
                      "line": 221,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/dom.js",
                      "name": "detach",
                      "name_prefix": "DomRenderer#",
                      "path": "DomRenderer.prototype.detach",
                      "outFile": "dom.html#DomRenderer.prototype.detach"
                    },
                    {
                      "id": "DomRenderer#pointProperties",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "el",
                              "types": [
                                "HTMLElement"
                              ],
                              "description": " The element\n\n     "
                            },
                            {
                              "name": "geometry",
                              "types": [
                                "Geometry"
                              ],
                              "description": " The body's geometry\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Set dom element style properties for a point.",
                      "short_description": "Set dom element style properties for a point.",
                      "line": 120,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/dom.js",
                      "name": "pointProperties",
                      "name_prefix": "DomRenderer#",
                      "path": "DomRenderer.prototype.pointProperties",
                      "outFile": "dom.html#DomRenderer.prototype.pointProperties"
                    },
                    {
                      "id": "DomRenderer#rectangleProperties",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "el",
                              "types": [
                                "HTMLElement"
                              ],
                              "description": " The element\n\n     "
                            },
                            {
                              "name": "geometry",
                              "types": [
                                "Geometry"
                              ],
                              "description": " The body's geometry\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "el",
                          "types": [
                            "HTMLElement"
                          ],
                          "description": " The element\n\n     "
                        },
                        {
                          "name": "geometry",
                          "types": [
                            "Geometry"
                          ],
                          "description": " The body's geometry\n\n     "
                        }
                      ],
                      "internal": true,
                      "description": "Set dom element style properties for a rectangle.",
                      "short_description": "Set dom element style properties for a rectangle.",
                      "line": 154,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/dom.js",
                      "name": "rectangleProperties",
                      "name_prefix": "DomRenderer#",
                      "path": "DomRenderer.prototype.rectangleProperties",
                      "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
                    }
                  ],
                  "file": "src/renderers/dom.js",
                  "subclasses": [],
                  "name": "DomRenderer",
                  "path": "DomRenderer",
                  "outFile": "dom.html"
                },
                {
                  "id": "PixiRenderer",
                  "type": "class",
                  "superclass": "Renderer",
                  "description": "Physics.renderer('pixi')\n\nRenderer that uses the PIXI.js library. [Documentation can be found here](https://github.com/wellcaffeinated/PhysicsJS/wiki/PIXI-Renderer).\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n   // Defines the default canvas colour\n   'color': '0x66FF99',\n\n   'circle' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C',\n       strokeAlpha: 1,\n       fillAlpha: 1\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '0x542437',\n       lineWidth: 1,\n       fillStyle: '0x542437',\n       angleIndicator: '0xFFFFFF'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50,\n       anchor: { x: 0.5, y: 0.5 }\n   }\n});\n```",
                  "short_description": "Physics.renderer('pixi')\n",
                  "line": 76,
                  "aliases": [],
                  "children": [
                    {
                      "id": "PixiRenderer#attach",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "PIXI.Graphics",
                                "Object"
                              ],
                              "description": " Graphics object or event data (`data.body`)\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "PIXI.Graphics",
                            "Object"
                          ],
                          "description": " Graphics object or event data (`data.body`)\n\n     "
                        }
                      ],
                      "description": "Event callback to attach a child to the stage",
                      "short_description": "Event callback to attach a child to the stage",
                      "line": 239,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "attach",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.attach",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
                    },
                    {
                      "id": "PixiRenderer#centerAnchor",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "view",
                              "types": [
                                "PIXI.DisplayObject"
                              ],
                              "description": " The view to center\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "view",
                          "types": [
                            "PIXI.DisplayObject"
                          ],
                          "description": " The view to center\n\n     "
                        }
                      ],
                      "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                      "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                      "line": 622,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "centerAnchor",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.centerAnchor",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
                    },
                    {
                      "id": "PixiRenderer#createCircle",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "x",
                              "types": [
                                "Number"
                              ],
                              "description": " The x coord\n\n     "
                            },
                            {
                              "name": "y",
                              "types": [
                                "Number"
                              ],
                              "description": " The y coord\n\n     "
                            },
                            {
                              "name": "r",
                              "types": [
                                "Number"
                              ],
                              "description": " The circle radius\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.Graphics",
                              "description": " A graphic object representing a circle.\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "r",
                          "types": [
                            "Number"
                          ],
                          "description": " The circle radius\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a circle.\n\n     "
                        }
                      ],
                      "description": "Create a circle for use in PIXI stage",
                      "short_description": "Create a circle for use in PIXI stage",
                      "line": 362,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "createCircle",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.createCircle",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
                    },
                    {
                      "id": "PixiRenderer#createDisplay",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "type",
                              "types": [
                                "String"
                              ],
                              "description": " The type of PIXI.DisplayObject to make\n\n     "
                            },
                            {
                              "name": "options",
                              "types": [
                                "Object"
                              ],
                              "description": " Options to apply to the view.\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.DisplayObject",
                              "description": " An object that is renderable.\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "type",
                          "types": [
                            "String"
                          ],
                          "description": " The type of PIXI.DisplayObject to make\n\n     "
                        },
                        {
                          "name": "options",
                          "types": [
                            "Object"
                          ],
                          "description": " Options to apply to the view.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.DisplayObject",
                          "description": " An object that is renderable.\n\n     "
                        }
                      ],
                      "description": "Create a PIXI sprite or movie clip.",
                      "short_description": "Create a PIXI sprite or movie clip.",
                      "line": 563,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "createDisplay",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.createDisplay",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
                    },
                    {
                      "id": "PixiRenderer#createLine",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "from",
                              "types": [
                                "Vectorish"
                              ],
                              "description": " Starting point\n\n     "
                            },
                            {
                              "name": "to",
                              "types": [
                                "Vectorish"
                              ],
                              "description": " Ending point\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.Graphics",
                              "description": " A graphic object representing a polygon.\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "from",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " Starting point\n\n     "
                        },
                        {
                          "name": "to",
                          "types": [
                            "Vectorish"
                          ],
                          "description": " Ending point\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a polygon.\n\n     "
                        }
                      ],
                      "description": "Create a line for use in PIXI stage",
                      "short_description": "Create a line for use in PIXI stage",
                      "line": 441,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "createLine",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.createLine",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
                    },
                    {
                      "id": "PixiRenderer#createPolygon",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "verts",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of [[Vectorish]] vertices\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.Graphics",
                              "description": " A graphic object representing a polygon.\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "verts",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of [[Vectorish]] vertices\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a polygon.\n\n     "
                        }
                      ],
                      "description": "Create a polygon for use in PIXI stage",
                      "short_description": "Create a polygon for use in PIXI stage",
                      "line": 399,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "createPolygon",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.createPolygon",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
                    },
                    {
                      "id": "PixiRenderer#createRect",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "x",
                              "types": [
                                "Number"
                              ],
                              "description": " The x coord\n\n     "
                            },
                            {
                              "name": "y",
                              "types": [
                                "Number"
                              ],
                              "description": " The y coord\n\n     "
                            },
                            {
                              "name": "r",
                              "types": [
                                "Number"
                              ],
                              "description": " The rectangle width\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Number"
                              ],
                              "description": " The rectangle height\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.Graphics",
                              "description": " A graphic object representing a circle.\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "x",
                          "types": [
                            "Number"
                          ],
                          "description": " The x coord\n\n     "
                        },
                        {
                          "name": "y",
                          "types": [
                            "Number"
                          ],
                          "description": " The y coord\n\n     "
                        },
                        {
                          "name": "width",
                          "types": [
                            "Number"
                          ],
                          "description": " The rectangle width\n\n     "
                        },
                        {
                          "name": "height",
                          "types": [
                            "Number"
                          ],
                          "description": " The rectangle height\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object representing a circle.\n\n     "
                        }
                      ],
                      "description": "Create a rectangle for use in PIXI stage",
                      "short_description": "Create a rectangle for use in PIXI stage",
                      "line": 382,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "createRect",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.createRect",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
                    },
                    {
                      "id": "PixiRenderer#detach",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "data",
                              "types": [
                                "PIXI.Graphics",
                                "Object"
                              ],
                              "description": " Graphics object or event data (`data.body`)\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "data",
                          "types": [
                            "PIXI.Graphics",
                            "Object"
                          ],
                          "description": " Graphics object or event data (`data.body`)\n\n     "
                        }
                      ],
                      "description": "Event callback to detach a child from the stage",
                      "short_description": "Event callback to detach a child from the stage",
                      "line": 220,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "detach",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.detach",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
                    },
                    {
                      "id": "PixiRenderer#drawBody",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "body",
                              "types": [
                                "Body"
                              ],
                              "description": " The body to draw\n\n     "
                            },
                            {
                              "name": "view",
                              "types": [
                                "DisplayObject"
                              ],
                              "description": " The pixi display object\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "body",
                          "types": [
                            "Body"
                          ],
                          "description": " The body to draw\n\n     "
                        },
                        {
                          "name": "view",
                          "types": [
                            "DisplayObject"
                          ],
                          "description": " The pixi display object\n\n     "
                        }
                      ],
                      "description": "Draw a PIXI.DisplayObject to the stage.",
                      "short_description": "Draw a PIXI.DisplayObject to the stage.",
                      "line": 287,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "drawBody",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.drawBody",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
                    },
                    {
                      "id": "PixiRenderer#loadSpriteSheets",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "assetsToLoad",
                              "types": [
                                "Array"
                              ],
                              "description": " Array of spritesheets to load\n\n     "
                            },
                            {
                              "name": "callback",
                              "types": [
                                "Function"
                              ],
                              "description": " Function to call when loading is complete\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "this"
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "assetsToLoad",
                          "types": [
                            "Array"
                          ],
                          "description": " Array of spritesheets to load\n\n     "
                        },
                        {
                          "name": "callback",
                          "types": [
                            "Function"
                          ],
                          "description": " Function to call when loading is complete\n\n     "
                        }
                      ],
                      "description": "Loads textures defined in a spritesheet",
                      "short_description": "Loads textures defined in a spritesheet",
                      "line": 259,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "loadSpriteSheets",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.loadSpriteSheets",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
                    },
                    {
                      "id": "PixiRenderer#setStyles",
                      "type": "instance method",
                      "signatures": [
                        {
                          "arguments": [
                            {
                              "name": "graphics",
                              "types": [
                                "PIXI.Graphics"
                              ],
                              "description": " The graphics object to set styles on\n\n     "
                            },
                            {
                              "name": "styles",
                              "types": [
                                "Object"
                              ],
                              "description": " The styles configuration\n\n     "
                            }
                          ],
                          "returns": [
                            {
                              "type": "PIXI.Graphics",
                              "description": " A graphic object\n\n     "
                            }
                          ]
                        }
                      ],
                      "arguments": [
                        {
                          "name": "graphics",
                          "types": [
                            "PIXI.Graphics"
                          ],
                          "description": " The graphics object to set styles on\n\n     "
                        },
                        {
                          "name": "styles",
                          "types": [
                            "Object"
                          ],
                          "description": " The styles configuration\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "PIXI.Graphics",
                          "description": " A graphic object\n\n     "
                        }
                      ],
                      "description": "Set styles on pixi graphics object",
                      "short_description": "Set styles on pixi graphics object",
                      "line": 322,
                      "aliases": [],
                      "children": [],
                      "file": "src/renderers/pixi-renderer.js",
                      "name": "setStyles",
                      "name_prefix": "PixiRenderer#",
                      "path": "PixiRenderer.prototype.setStyles",
                      "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
                    }
                  ],
                  "file": "src/renderers/pixi-renderer.js",
                  "subclasses": [],
                  "name": "PixiRenderer",
                  "path": "PixiRenderer",
                  "outFile": "pixi-renderer.html"
                }
              ],
              "file": "src/core/renderer.js",
              "subclasses": [
                "CanvasRenderer",
                "DebugRenderer",
                "DomRenderer",
                "PixiRenderer"
              ],
              "name": "Renderer",
              "path": "Renderer",
              "outFile": "renderer.html"
            }
          ],
          "file": "src/core/renderer.js",
          "name": "renderer",
          "name_prefix": "Physics.",
          "path": "Physics.renderer",
          "outFile": "renderer.html#Physics.renderer"
        },
        {
          "id": "Physics.scratchpad",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "fn",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
                },
                {
                  "type": "Scratch",
                  "description": " The scratch session.\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
            },
            {
              "type": "Scratch",
              "description": " The scratch session.\n\n "
            }
          ],
          "description": "Get a new scratch session to work from or wrap a function in a scratch session.\n\nCall `.done()` on it when finished.\n\nExample:\n\n```javascript\n// get a scratch session manually\nvar myAlg = function( scratch, arg1, arg2, ... ){\n    var scratch = Physics.scratchpad()\n    ,vec = scratch.vector().set( 0, 0 ) // need to reinitialize... it's recycled!\n    ;\n    // ...\n    return scratch.done( result );\n};\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```\n\nExample:\n\n```javascript\n// wrap a function in a scratch session\nvar myAlg = Physics.scratchpad(function( scratch, arg1, arg2, ... ){\n    var vec = scratch.vector().set( 0, 0 ); // need to reinitialize... it's recycled!\n    //...\n    return result;\n});\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```",
          "short_description": "Get a new scratch session to work from or wrap a function in a scratch session.\n",
          "line": 128,
          "aliases": [],
          "children": [
            {
              "id": "Physics.scratchpad.fn",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Function",
                      "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
                }
              ],
              "description": "Wrap a function in a scratch session.\n\nSame as calling `Physics.scratchpad( fn )` with a function specified.",
              "short_description": "Wrap a function in a scratch session.\n",
              "line": 152,
              "aliases": [],
              "children": [],
              "file": "src/util/scratchpad.js",
              "name": "fn",
              "name_prefix": "Physics.scratchpad.",
              "path": "Physics.scratchpad.fn",
              "outFile": "scratchpad.html#Physics.scratchpad.fn"
            },
            {
              "id": "Physics.scratchpad.register",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "name",
                      "types": [
                        "String"
                      ],
                      "description": " Name of the object class\n\n "
                    },
                    {
                      "name": "constructor",
                      "types": [
                        "Function"
                      ],
                      "description": " The object constructor\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " Name of the object class\n\n "
                },
                {
                  "name": "constructor",
                  "types": [
                    "Function"
                  ],
                  "description": " The object constructor\n\n "
                }
              ],
              "description": "Register a new object to be included in scratchpads.\n\nExample:\n\n```javascript\n// register a hypothetical vector class...\nPhysics.scratchpad.register('vector', Vector);\n```",
              "short_description": "Register a new object to be included in scratchpads.\n",
              "line": 186,
              "aliases": [],
              "children": [],
              "file": "src/util/scratchpad.js",
              "name": "register",
              "name_prefix": "Physics.scratchpad.",
              "path": "Physics.scratchpad.register",
              "outFile": "scratchpad.html#Physics.scratchpad.register"
            },
            {
              "id": "Scratch",
              "type": "class",
              "belongs_to": "Physics.scratchpad",
              "description": "A scratchpad session.\n\nThis class keeps track of temporary objects used\nin this session and releases them when finished (call to `.done()`).\n\nUse this to retrieve temporary objects:\n- `.vector()`: retrieve a temporary [[Physics.vector]]\n- `.transform()`: retrieve a temporary [[Physics.transform]]\n\nSee [[Physics.scratchpad]] for more info.",
              "short_description": "A scratchpad session.\n",
              "line": 37,
              "aliases": [],
              "children": [
                {
                  "id": "Scratch#done",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "val",
                          "optional": true,
                          "types": [
                            "Mixed"
                          ],
                          "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Mixed",
                          "description": " Whatever you specified as `val`\n\n     "
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "val",
                      "types": [
                        "Mixed"
                      ],
                      "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Mixed",
                      "description": " Whatever you specified as `val`\n\n     "
                    }
                  ],
                  "description": "Declare that your work is finished.\n\nRelease temp objects for use elsewhere. Must be called when immediate work is done.\n\nYou can wrap the return value in scratch.done() so that you don't forget to call it.\n\nExample:\n\n```javascript\nreturn scratch.done( myReturnValue );\n```",
                  "short_description": "Declare that your work is finished.\n",
                  "line": 68,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/scratchpad.js",
                  "name": "done",
                  "name_prefix": "Scratch#",
                  "path": "Scratch.prototype.done",
                  "outFile": "scratchpad.html#Scratch.prototype.done"
                }
              ],
              "file": "src/util/scratchpad.js",
              "subclasses": [],
              "name": "Scratch",
              "path": "Scratch",
              "outFile": "scratchpad.html"
            }
          ],
          "file": "src/util/scratchpad.js",
          "name": "scratchpad",
          "name_prefix": "Physics.",
          "path": "Physics.scratchpad",
          "outFile": "scratchpad.html#Physics.scratchpad"
        },
        {
          "id": "Physics.transform",
          "type": "class",
          "description": "Vector Transformations class for rotating and translating vectors",
          "short_description": "Vector Transformations class for rotating and translating vectors",
          "line": 8,
          "aliases": [],
          "children": [
            {
              "id": "Physics.transform#clone",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "transform",
                      "optional": true,
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " Transform to copy\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this",
                      "description": " For chaining\n\n "
                    },
                    {
                      "type": "Physics.transform",
                      "description": " New copy of `this` if none is specified as an argument\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "transform",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " Transform to copy\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this",
                  "description": " For chaining\n\n "
                },
                {
                  "type": "Physics.transform",
                  "description": " New copy of `this` if none is specified as an argument\n\n "
                }
              ],
              "description": "Clone another transform. Or clone self into new transform.",
              "short_description": "Clone another transform. Or clone self into new transform.",
              "line": 82,
              "aliases": [],
              "children": [],
              "file": "src/math/transform.js",
              "name": "clone",
              "name_prefix": "Physics.transform#",
              "path": "Physics.transform.prototype.clone",
              "outFile": "transform.html#Physics.transform.prototype.clone"
            },
            {
              "id": "Physics.transform#setRotation",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "angle",
                      "types": [
                        "Number"
                      ],
                      "description": " Angle (radians) to use for rotation\n\n "
                    },
                    {
                      "name": "origin",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Origin of the rotation\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " Angle (radians) to use for rotation\n\n "
                },
                {
                  "name": "origin",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Origin of the rotation\n\n "
                }
              ],
              "description": "Set the rotation portion of the transform",
              "short_description": "Set the rotation portion of the transform",
              "line": 60,
              "aliases": [],
              "children": [],
              "file": "src/math/transform.js",
              "name": "setRotation",
              "name_prefix": "Physics.transform#",
              "path": "Physics.transform.prototype.setRotation",
              "outFile": "transform.html#Physics.transform.prototype.setRotation"
            },
            {
              "id": "Physics.transform#setTranslation",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "vect",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The translation vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "vect",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The translation vector\n\n "
                }
              ],
              "description": "Set the translation portion of the transform.",
              "short_description": "Set the translation portion of the transform.",
              "line": 47,
              "aliases": [],
              "children": [],
              "file": "src/math/transform.js",
              "name": "setTranslation",
              "name_prefix": "Physics.transform#",
              "path": "Physics.transform.prototype.setTranslation",
              "outFile": "transform.html#Physics.transform.prototype.setTranslation"
            },
            {
              "id": "new Physics.transform",
              "type": "constructor",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "vect",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Translation vector\n\n "
                    },
                    {
                      "name": "angle",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Angle (radians) to use for rotation\n\n "
                    },
                    {
                      "name": "origin",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " Origin of the rotation\n\n "
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "transform",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " Transform to copy\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "vect",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Translation vector\n\n "
                },
                {
                  "name": "transform",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " Transform to copy\n\n "
                },
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " Angle (radians) to use for rotation\n\n "
                },
                {
                  "name": "origin",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Origin of the rotation\n\n "
                }
              ],
              "description": "Transform Constructor / Factory",
              "short_description": "Transform Constructor / Factory",
              "line": 19,
              "aliases": [],
              "children": [],
              "file": "src/math/transform.js",
              "name": "new",
              "name_prefix": "Physics.transform.",
              "path": "Physics.transform.new",
              "outFile": "transform.html#Physics.transform.new"
            }
          ],
          "file": "src/math/transform.js",
          "subclasses": [],
          "name": "transform",
          "name_prefix": "Physics.",
          "path": "Physics.transform",
          "outFile": "transform.html"
        },
        {
          "id": "Physics.util",
          "type": "namespace",
          "description": "Namespace for utility functions.",
          "short_description": "Namespace for utility functions.",
          "line": 47,
          "aliases": [],
          "children": [
            {
              "id": "Physics.util.bind",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The function to bind scope to\n\n "
                    },
                    {
                      "name": "scope",
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to give to `fn`\n\n "
                    },
                    {
                      "name": "args",
                      "ellipsis": true,
                      "optional": true,
                      "types": [
                        "Mixed"
                      ],
                      "description": " Arguments to send to `fn`\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Function"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to bind scope to\n\n "
                },
                {
                  "name": "scope",
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to give to `fn`\n\n "
                },
                {
                  "name": "args",
                  "types": [
                    "Mixed"
                  ],
                  "description": " Arguments to send to `fn`\n\n "
                }
              ],
              "description": "Bind a scope to a function.\n\nBasically the same functionality as [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).",
              "short_description": "Bind a scope to a function.\n",
              "line": 183,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "bind",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.bind",
              "outFile": "helpers.html#Physics.util.bind"
            },
            {
              "id": "Physics.util.clearArray",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " The array to clear\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array",
                      "description": " The array passed in\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to clear\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " The array passed in\n\n "
                }
              ],
              "description": "Quickly clear an array.",
              "short_description": "Quickly clear an array.",
              "line": 33,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "clearArray",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.clearArray",
              "outFile": "helpers.html#Physics.util.clearArray"
            },
            {
              "id": "Physics.util.decorator",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "type",
                      "types": [
                        "String"
                      ],
                      "description": " The name of the factory you are creating\n\n "
                    },
                    {
                      "name": "protoDef",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The top-level prototype\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Function",
                      "description": " The factory function\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "type",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the factory you are creating\n\n "
                },
                {
                  "name": "protoDef",
                  "types": [
                    "Object"
                  ],
                  "description": " The top-level prototype\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The factory function\n\n "
                }
              ],
              "related_to": "factory",
              "description": "Facilitates creation of decorator factory functions.\n\nSee the [[factory]] definition for the factory signatures.\n[For full documentation and examples, please visit the wiki](https://github.com/wellcaffeinated/PhysicsJS/wiki/Fundamentals#the-factory-pattern).\n\nExample:\n\n```javascript\nvar factory = Physics.util.decorator('factory', {\n     // prototype methods...\n     method: function( args ){\n     }\n});\n\n// define\nfactory( 'name', 'parent-name', function( parent ){\n\n     // extend further...\n     return {\n         // overrides\n         init: function( cfg ){\n             parent.init.call(this, cfg);\n         }\n     };\n});\n\n// instantiate\nvar options = { key: 'val' };\nvar instance = factory( 'name', options );\n```",
              "short_description": "Facilitates creation of decorator factory functions.\n",
              "line": 38,
              "aliases": [],
              "children": [
                {
                  "id": "factory",
                  "type": "method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "name",
                          "types": [
                            "String"
                          ],
                          "description": "  The class name\n\n "
                        },
                        {
                          "name": "parentName",
                          "optional": true,
                          "types": [
                            "String"
                          ],
                          "description": " The name of parent class to extend\n\n "
                        },
                        {
                          "name": "decorator",
                          "types": [
                            "Function"
                          ],
                          "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                        },
                        {
                          "name": "cfg",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration to pass to the class initializer\n\n "
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "name",
                          "types": [
                            "String"
                          ],
                          "description": "  The class name\n\n "
                        },
                        {
                          "name": "cfg",
                          "types": [
                            "Object"
                          ],
                          "description": " The configuration to pass to the class initializer\n\n "
                        }
                      ],
                      "returns": [
                        {
                          "type": "Object"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "name",
                      "types": [
                        "String"
                      ],
                      "description": "  The class name\n\n "
                    },
                    {
                      "name": "parentName",
                      "types": [
                        "String"
                      ],
                      "description": " The name of parent class to extend\n\n "
                    },
                    {
                      "name": "decorator",
                      "types": [
                        "Function"
                      ],
                      "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                    },
                    {
                      "name": "cfg",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration to pass to the class initializer\n\n "
                    }
                  ],
                  "belongs_to": "Physics.util.decorator",
                  "description": "Factory function for definition and instantiation of subclasses.\n\nUse the first signature (once) to define it first.\nIf defining without the \"cfg\" parameter, void will be returned. Otherwise the class instance will be returned.\n\nSee [[Physics.util.decorator]] for more information.",
                  "short_description": "Factory function for definition and instantiation of subclasses.\n",
                  "line": 129,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/decorator.js",
                  "name": "factory",
                  "path": "factory",
                  "outFile": "decorator.html#factory"
                }
              ],
              "file": "src/util/decorator.js",
              "name": "decorator",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.decorator",
              "outFile": "decorator.html#Physics.util.decorator"
            },
            {
              "id": "Physics.util.defaults",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "object",
                      "types": [
                        "Object"
                      ],
                      "description": " The destination object\n\n "
                    },
                    {
                      "name": "source",
                      "ellipsis": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The source objects\n\n "
                    },
                    {
                      "name": "callback",
                      "optional": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The function to customize assigning values\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "object",
                  "types": [
                    "Object"
                  ],
                  "description": " The destination object\n\n "
                },
                {
                  "name": "source",
                  "types": [
                    "Object"
                  ],
                  "description": " The source objects\n\n "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to customize assigning values\n\n "
                }
              ],
              "description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
              "short_description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
              "line": 650,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "defaults",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.defaults",
              "outFile": "helpers.html#Physics.util.defaults"
            },
            {
              "id": "Physics.util.extend",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "object",
                      "types": [
                        "Object"
                      ],
                      "description": " The destination object\n\n "
                    },
                    {
                      "name": "source",
                      "ellipsis": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The source objects\n\n "
                    },
                    {
                      "name": "callback",
                      "optional": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The function to customize assigning values\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "object",
                  "types": [
                    "Object"
                  ],
                  "description": " The destination object\n\n "
                },
                {
                  "name": "source",
                  "types": [
                    "Object"
                  ],
                  "description": " The source objects\n\n "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to customize assigning values\n\n "
                }
              ],
              "description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
              "short_description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
              "line": 640,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "extend",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.extend",
              "outFile": "helpers.html#Physics.util.extend"
            },
            {
              "id": "Physics.util.filter",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "collection",
                      "types": [
                        "Array"
                      ],
                      "description": " Collection of values to test\n\n "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "value",
                          "description": " The value to test\n\n ",
                          "types": [
                            "Mixed"
                          ]
                        },
                        {
                          "name": "index",
                          "description": " The index of value in collection\n\n ",
                          "types": [
                            "Number"
                          ]
                        },
                        {
                          "name": "collection",
                          "description": " Collection of values to test\n\n ",
                          "types": [
                            "Array"
                          ]
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The test function\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " Collection of values to test\n\n "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The test function\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                },
                {
                  "name": "index",
                  "types": [
                    "Number"
                  ],
                  "description": " The index of value in collection\n\n "
                },
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " The input collection\n\n "
                }
              ],
              "description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
              "short_description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
              "line": 235,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "filter",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.filter",
              "outFile": "helpers.html#Physics.util.filter"
            },
            {
              "id": "Physics.util.find",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "collection",
                      "types": [
                        "Array"
                      ],
                      "description": " Collection of values to test\n\n "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "value",
                          "description": " The value to test\n\n ",
                          "types": [
                            "Mixed"
                          ]
                        },
                        {
                          "name": "index",
                          "description": " The index of value in collection\n\n ",
                          "types": [
                            "Number"
                          ]
                        },
                        {
                          "name": "collection",
                          "description": " Collection of values to test\n\n ",
                          "types": [
                            "Array"
                          ]
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The test function\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Mixed"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " Collection of values to test\n\n "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The test function\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                },
                {
                  "name": "index",
                  "types": [
                    "Number"
                  ],
                  "description": " The index of value in collection\n\n "
                },
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " The input collection\n\n "
                }
              ],
              "description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
              "short_description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
              "line": 209,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "find",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.find",
              "outFile": "helpers.html#Physics.util.find"
            },
            {
              "id": "Physics.util.indexOf",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " The array to search\n\n "
                    },
                    {
                      "name": "value",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to find\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " The index of `value` in the array OR `-1` if not found\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to search\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to find\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The index of `value` in the array OR `-1` if not found\n\n "
                }
              ],
              "description": "Fast indexOf implementation.",
              "short_description": "Fast indexOf implementation.",
              "line": 9,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "indexOf",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.indexOf",
              "outFile": "helpers.html#Physics.util.indexOf"
            },
            {
              "id": "Physics.util.isArray",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "val",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to test\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "description": "Test if a value is an array.",
              "short_description": "Test if a value is an array.",
              "line": 502,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "isArray",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.isArray",
              "outFile": "helpers.html#Physics.util.isArray"
            },
            {
              "id": "Physics.util.isFunction",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "val",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to test\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "description": "Test if a value is a function.",
              "short_description": "Test if a value is a function.",
              "line": 494,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "isFunction",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.isFunction",
              "outFile": "helpers.html#Physics.util.isFunction"
            },
            {
              "id": "Physics.util.isObject",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "val",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to test\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "description": "Test if a value is an object.",
              "short_description": "Test if a value is an object.",
              "line": 476,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "isObject",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.isObject",
              "outFile": "helpers.html#Physics.util.isObject"
            },
            {
              "id": "Physics.util.isPlainObject",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "val",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to test\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "description": "Test if a value is a plain javascript object.",
              "short_description": "Test if a value is a plain javascript object.",
              "line": 540,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "isPlainObject",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.isPlainObject",
              "outFile": "helpers.html#Physics.util.isPlainObject"
            },
            {
              "id": "Physics.util.options",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "def",
                      "types": [
                        "Object"
                      ],
                      "description": " Default options to set\n\n "
                    },
                    {
                      "name": "target",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " Where to copy the options to. Defaults to the returned function.\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Function",
                      "description": " The options function\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "def",
                  "types": [
                    "Object"
                  ],
                  "description": " Default options to set\n\n "
                },
                {
                  "name": "target",
                  "types": [
                    "Object"
                  ],
                  "description": " Where to copy the options to. Defaults to the returned function.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The options function\n\n "
                }
              ],
              "description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n\nExample:\n\n```javascript\nthis.options = Physics.util.options({ foo: 'bar', opt: 'def' });\nthis.options({ opt: 'myVal' });\n\nthis.options.foo; // === 'bar'\nthis.options.def; // === 'myVal'\n\n// can also change defaults later\nthis.options.defaults({ foo: 'baz' });\n\n// can add a change callback\nthis.options.onChange(function( opts ){\n    // some option changed\n    // opts is the target\n});\n```",
              "short_description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n",
              "line": 102,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "options",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.options",
              "outFile": "helpers.html#Physics.util.options"
            },
            {
              "id": "Physics.util.pairHash",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "id1",
                      "types": [
                        "Number"
                      ],
                      "description": " The id of the first thing\n\n "
                    },
                    {
                      "name": "id2",
                      "types": [
                        "Number"
                      ],
                      "description": " The id of the second thing\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " A unique numeric hash (valid for values < 2^16)\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "id1",
                  "types": [
                    "Number"
                  ],
                  "description": " The id of the first thing\n\n "
                },
                {
                  "name": "id2",
                  "types": [
                    "Number"
                  ],
                  "description": " The id of the second thing\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " A unique numeric hash (valid for values < 2^16)\n\n "
                }
              ],
              "description": "Generate a unique numeric hash from two input IDs.\n\nUseful for speedy indexing of pairs.",
              "short_description": "Generate a unique numeric hash from two input IDs.\n",
              "line": 157,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "pairHash",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.pairHash",
              "outFile": "helpers.html#Physics.util.pairHash"
            },
            {
              "id": "Physics.util.pubsub",
              "type": "class",
              "description": "Fast pubsub implementation.\n\nCan be mixed into other classes easily.",
              "short_description": "Fast pubsub implementation.\n",
              "line": 19,
              "aliases": [],
              "children": [
                {
                  "id": "Physics.util.pubsub#emit",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "topic",
                          "types": [
                            "String"
                          ],
                          "description": " The topic name\n\n     "
                        },
                        {
                          "name": "data",
                          "optional": true,
                          "types": [
                            "Mixed"
                          ],
                          "description": " The data to send\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "data",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The data to send\n\n     "
                    }
                  ],
                  "description": "Publish data to a topic.",
                  "short_description": "Publish data to a topic.",
                  "line": 160,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/pubsub.js",
                  "name": "emit",
                  "name_prefix": "Physics.util.pubsub#",
                  "path": "Physics.util.pubsub.prototype.emit",
                  "outFile": "pubsub.html#Physics.util.pubsub.prototype.emit"
                },
                {
                  "id": "Physics.util.pubsub#off",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "topic",
                          "types": [
                            "String"
                          ],
                          "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                        },
                        {
                          "name": "fn",
                          "types": [
                            "Function"
                          ],
                          "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                        },
                        {
                          "name": "scope",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "topicCfg",
                          "types": [
                            "Object"
                          ],
                          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                    },
                    {
                      "name": "topicCfg",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    },
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                    },
                    {
                      "name": "scope",
                      "types": [
                        "Object"
                      ],
                      "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                    }
                  ],
                  "description": "Unsubscribe callback(s) from topic(s).",
                  "short_description": "Unsubscribe callback(s) from topic(s).",
                  "line": 96,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/pubsub.js",
                  "name": "off",
                  "name_prefix": "Physics.util.pubsub#",
                  "path": "Physics.util.pubsub.prototype.off",
                  "outFile": "pubsub.html#Physics.util.pubsub.prototype.off"
                },
                {
                  "id": "Physics.util.pubsub#on",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "topic",
                          "types": [
                            "String"
                          ],
                          "description": " The topic name\n\n     "
                        },
                        {
                          "name": "fn",
                          "arguments": [
                            {
                              "name": "data"
                            },
                            {
                              "name": "event"
                            }
                          ],
                          "callback": true,
                          "types": [
                            "Function"
                          ],
                          "description": " The callback function (if not using Object as previous argument)\n\n     "
                        },
                        {
                          "name": "scope",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The scope to bind callback to\n\n     "
                        },
                        {
                          "name": "priority",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The priority of the callback (higher is earlier)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "topicConfig",
                          "types": [
                            "Object"
                          ],
                          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                        },
                        {
                          "name": "scope",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The scope to bind callback to\n\n     "
                        },
                        {
                          "name": "priority",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The priority of the callback (higher is earlier)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "topicConfig",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    },
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function (if not using Object as previous argument)\n\n     "
                    },
                    {
                      "name": "data",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The data sent from the call to `.emit()`\n\n     "
                    },
                    {
                      "name": "event",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                    },
                    {
                      "name": "scope",
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "description": "Subscribe callback(s) to a topic(s).",
                  "short_description": "Subscribe callback(s) to a topic(s).",
                  "line": 41,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/pubsub.js",
                  "name": "on",
                  "name_prefix": "Physics.util.pubsub#",
                  "path": "Physics.util.pubsub.prototype.on",
                  "outFile": "pubsub.html#Physics.util.pubsub.prototype.on"
                },
                {
                  "id": "Physics.util.pubsub#one",
                  "type": "instance method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "topic",
                          "types": [
                            "String"
                          ],
                          "description": " The topic name\n\n     "
                        },
                        {
                          "name": "fn",
                          "arguments": [
                            {
                              "name": "data"
                            },
                            {
                              "name": "event"
                            }
                          ],
                          "callback": true,
                          "types": [
                            "Function"
                          ],
                          "description": " The callback function (if not using Object as previous argument)\n\n     "
                        },
                        {
                          "name": "scope",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The scope to bind callback to\n\n     "
                        },
                        {
                          "name": "priority",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The priority of the callback (higher is earlier)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    },
                    {
                      "arguments": [
                        {
                          "name": "topicConfig",
                          "types": [
                            "Object"
                          ],
                          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                        },
                        {
                          "name": "scope",
                          "optional": true,
                          "types": [
                            "Object"
                          ],
                          "description": " The scope to bind callback to\n\n     "
                        },
                        {
                          "name": "priority",
                          "optional": true,
                          "types": [
                            "Number"
                          ],
                          "description": " The priority of the callback (higher is earlier)\n\n     "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "topicConfig",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    },
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function (if not using Object as previous argument)\n\n     "
                    },
                    {
                      "name": "data",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The data sent from the call to `.emit()`\n\n     "
                    },
                    {
                      "name": "event",
                      "types": [
                        "Object"
                      ],
                      "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                    },
                    {
                      "name": "scope",
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "description": "Subscribe callback(s) to a topic(s), but only ONCE.",
                  "short_description": "Subscribe callback(s) to a topic(s), but only ONCE.",
                  "line": 211,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/pubsub.js",
                  "name": "one",
                  "name_prefix": "Physics.util.pubsub#",
                  "path": "Physics.util.pubsub.prototype.one",
                  "outFile": "pubsub.html#Physics.util.pubsub.prototype.one"
                }
              ],
              "file": "src/util/pubsub.js",
              "subclasses": [],
              "name": "pubsub",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.pubsub",
              "outFile": "pubsub.html"
            },
            {
              "id": "Physics.util.sortedIndex",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "array",
                      "types": [
                        "Array"
                      ],
                      "description": " The array to inspect\n\n "
                    },
                    {
                      "name": "value",
                      "types": [
                        "Mixed"
                      ],
                      "description": " The value to evaluate\n\n "
                    },
                    {
                      "name": "callback",
                      "optional": true,
                      "types": [
                        "Function"
                      ],
                      "description": " Function called per iteration\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "array",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to inspect\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to evaluate\n\n "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " Function called per iteration\n\n "
                }
              ],
              "description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
              "short_description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
              "line": 682,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "sortedIndex",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.sortedIndex",
              "outFile": "helpers.html#Physics.util.sortedIndex"
            },
            {
              "id": "Physics.util.throttle",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The function to throttle\n\n "
                    },
                    {
                      "name": "delay",
                      "types": [
                        "Number"
                      ],
                      "description": " Time in milliseconds\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Function"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to throttle\n\n "
                },
                {
                  "name": "delay",
                  "types": [
                    "Number"
                  ],
                  "description": " Time in milliseconds\n\n "
                }
              ],
              "description": "Ensure a function is only called once every specified time span.",
              "short_description": "Ensure a function is only called once every specified time span.",
              "line": 48,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "throttle",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.throttle",
              "outFile": "helpers.html#Physics.util.throttle"
            },
            {
              "id": "Physics.util.ticker",
              "type": "class",
              "description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n\nRequires window.requestAnimationFrame... so polyfill it if you need to.",
              "short_description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n",
              "line": 8,
              "aliases": [],
              "children": [
                {
                  "id": "Physics.util.ticker.isActive",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "Boolean"
                        }
                      ]
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if running, `false` otherwise.\n\n "
                    }
                  ],
                  "description": "Determine if ticker is currently running.",
                  "short_description": "Determine if ticker is currently running.",
                  "line": 107,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/ticker.js",
                  "name": "isActive",
                  "name_prefix": "Physics.util.ticker.",
                  "path": "Physics.util.ticker.isActive",
                  "outFile": "ticker.html#Physics.util.ticker.isActive"
                },
                {
                  "id": "Physics.util.ticker.off",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "listener",
                          "types": [
                            "Function"
                          ],
                          "description": " The callback function previously bound\n\n "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "listener",
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function previously bound\n\n "
                    }
                  ],
                  "description": "Unsubscribe a callback from the ticker.",
                  "short_description": "Unsubscribe a callback from the ticker.",
                  "line": 95,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/ticker.js",
                  "name": "off",
                  "name_prefix": "Physics.util.ticker.",
                  "path": "Physics.util.ticker.off",
                  "outFile": "ticker.html#Physics.util.ticker.off"
                },
                {
                  "id": "Physics.util.ticker.on",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [
                        {
                          "name": "listener",
                          "arguments": [
                            {
                              "name": "time",
                              "description": " The current timestamp\n\n ",
                              "types": [
                                "Number"
                              ]
                            }
                          ],
                          "callback": true,
                          "types": [
                            "Function"
                          ],
                          "description": " The callback function\n\n "
                        }
                      ],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "arguments": [
                    {
                      "name": "listener",
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function\n\n "
                    },
                    {
                      "name": "time",
                      "types": [
                        "Number"
                      ],
                      "description": " The current timestamp\n\n "
                    }
                  ],
                  "description": "Subscribe a callback to the ticker.",
                  "short_description": "Subscribe a callback to the ticker.",
                  "line": 83,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/ticker.js",
                  "name": "on",
                  "name_prefix": "Physics.util.ticker.",
                  "path": "Physics.util.ticker.on",
                  "outFile": "ticker.html#Physics.util.ticker.on"
                },
                {
                  "id": "Physics.util.ticker.start",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Start the ticker",
                  "short_description": "Start the ticker",
                  "line": 59,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/ticker.js",
                  "name": "start",
                  "name_prefix": "Physics.util.ticker.",
                  "path": "Physics.util.ticker.start",
                  "outFile": "ticker.html#Physics.util.ticker.start"
                },
                {
                  "id": "Physics.util.ticker.stop",
                  "type": "class method",
                  "signatures": [
                    {
                      "arguments": [],
                      "returns": [
                        {
                          "type": "this"
                        }
                      ]
                    }
                  ],
                  "description": "Stop the ticker",
                  "short_description": "Stop the ticker",
                  "line": 70,
                  "aliases": [],
                  "children": [],
                  "file": "src/util/ticker.js",
                  "name": "stop",
                  "name_prefix": "Physics.util.ticker.",
                  "path": "Physics.util.ticker.stop",
                  "outFile": "ticker.html#Physics.util.ticker.stop"
                }
              ],
              "file": "src/util/ticker.js",
              "subclasses": [],
              "name": "ticker",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.ticker",
              "outFile": "ticker.html"
            },
            {
              "id": "Physics.util.uniq",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "array",
                      "types": [
                        "Array"
                      ],
                      "description": " The array\n\n "
                    },
                    {
                      "name": "isSorted",
                      "optional": true,
                      "types": [
                        "Boolean"
                      ],
                      "description": " Flag to indicate the array is sorted\n\n "
                    },
                    {
                      "name": "callback",
                      "optional": true,
                      "types": [
                        "Function"
                      ],
                      "description": " Mapping function\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "array",
                  "types": [
                    "Array"
                  ],
                  "description": " The array\n\n "
                },
                {
                  "name": "isSorted",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Flag to indicate the array is sorted\n\n "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " Mapping function\n\n "
                }
              ],
              "description": "Create an array without duplicates.",
              "short_description": "Create an array without duplicates.",
              "line": 597,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "uniq",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.uniq",
              "outFile": "helpers.html#Physics.util.uniq"
            },
            {
              "id": "Physics.util.uniqueId",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "prefix",
                      "optional": true,
                      "types": [
                        "String"
                      ],
                      "description": " Prefix to the id\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "String"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "prefix",
                  "types": [
                    "String"
                  ],
                  "description": " Prefix to the id\n\n "
                }
              ],
              "description": "Generate a unique id, optionally prefixed.",
              "short_description": "Generate a unique id, optionally prefixed.",
              "line": 419,
              "aliases": [],
              "children": [],
              "file": "src/util/helpers.js",
              "name": "uniqueId",
              "name_prefix": "Physics.util.",
              "path": "Physics.util.uniqueId",
              "outFile": "helpers.html#Physics.util.uniqueId"
            }
          ],
          "file": "src/intro.js",
          "name": "util",
          "name_prefix": "Physics.",
          "path": "Physics.util",
          "outFile": "intro.html#Physics.util"
        },
        {
          "id": "Physics.vector",
          "type": "class",
          "description": "The vector class and factory function.\n\nCall `Physics.vector` with the same arguments as\n[[new Physics.vector]] to create an instance.\n\nThe vector methods mostly modify the vector instance.\nThis makes computations faster because creating vectors\nis avoided.\n\nCreating vectors is generally an expensive operation\nso try to avoid doing this in the simulation loop.\nInstead you can use [[Physics.scratchpad]] to get\ntemporary vectors for use in performance critical\ncode.\n\n_Note_: The coordinate system is left-handed, meaning that\nthe clockwise angular direction is positive. This has implications\nfor the cross-product rule.",
          "short_description": "The vector class and factory function.\n",
          "line": 38,
          "aliases": [],
          "children": [
            {
              "id": "Physics.vector#_",
              "type": "namespace",
              "internal": true,
              "description": "Private storage array for data.\n\nDo not access this directly. Private. Keep out.",
              "short_description": "Private storage array for data.\n",
              "line": 80,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "_",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype._",
              "outFile": "vector.html#Physics.vector.prototype._"
            },
            {
              "id": "Physics.vector#add",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " amount to add to the x coordinate\n\n "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " amount to add to the y coordinate\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to add to the x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to add to the y coordinate\n\n "
                }
              ],
              "description": "Add scalars [[Physics.vector]] to the coordinates.",
              "short_description": "Add scalars [[Physics.vector]] to the coordinates.",
              "line": 198,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "add",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.add",
              "outFile": "vector.html#Physics.vector.prototype.add"
            },
            {
              "id": "Physics.vector#angle",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "optional": true,
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
                }
              ],
              "description": "Compute the angle between `this` and vector `v` or this and x axis.",
              "short_description": "Compute the angle between `this` and vector `v` or this and x axis.",
              "line": 297,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "angle",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.angle",
              "outFile": "vector.html#Physics.vector.prototype.angle"
            },
            {
              "id": "Physics.vector#angle2",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "left",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The position on the left\n\n "
                    },
                    {
                      "name": "right",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The position on the right\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "left",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position on the left\n\n "
                },
                {
                  "name": "right",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position on the right\n\n "
                }
              ],
              "description": "Compute the angle created between three points; left -> this -> right.",
              "short_description": "Compute the angle created between three points; left -> this -> right.",
              "line": 336,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "angle2",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.angle2",
              "outFile": "vector.html#Physics.vector.prototype.angle2"
            },
            {
              "id": "Physics.vector#clamp",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "minV",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The minimum vector\n\n "
                    },
                    {
                      "name": "maxV",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The maximum vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "minV",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The minimum vector\n\n "
                },
                {
                  "name": "maxV",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The maximum vector\n\n "
                }
              ],
              "description": "Constrain vector components to minima and maxima.\n\nThe vector analog of [scalar clamping](http://en.wikipedia.org/wiki/Clamping_(graphics)).",
              "short_description": "Constrain vector components to minima and maxima.\n",
              "line": 733,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "clamp",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.clamp",
              "outFile": "vector.html#Physics.vector.prototype.clamp"
            },
            {
              "id": "Physics.vector#clone",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The vector-like object to clone\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this",
                      "description": " If `v` is specified as an argument\n\n "
                    },
                    {
                      "type": "Physics.vector",
                      "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The vector-like object to clone\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this",
                  "description": " If `v` is specified as an argument\n\n "
                },
                {
                  "type": "Physics.vector",
                  "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
                }
              ],
              "description": "Create a clone of this vector, or clone another vector into this instance.\n\nThis is especially useful in vector algorithms\nthat use temporary vectors (which most should).\nYou can create temporary vectors and then do things like...\n```\ntemp.clone( otherVector );\n// compute things with temp...\n// then save the result\nresult.clone( tmp );\n```",
              "short_description": "Create a clone of this vector, or clone another vector into this instance.\n",
              "line": 632,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "clone",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.clone",
              "outFile": "vector.html#Physics.vector.prototype.clone"
            },
            {
              "id": "Physics.vector#cross",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the (left-handed) cross product of this vector with `v`.",
              "short_description": "Compute the (left-handed) cross product of this vector with `v`.",
              "line": 261,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "cross",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.cross",
              "outFile": "vector.html#Physics.vector.prototype.cross"
            },
            {
              "id": "Physics.vector#dist",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the distance from this vector to another vector `v`.",
              "short_description": "Compute the distance from this vector to another vector `v`.",
              "line": 394,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "dist",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.dist",
              "outFile": "vector.html#Physics.vector.prototype.dist"
            },
            {
              "id": "Physics.vector#distSq",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the distance squared from this vector to another vector `v`.",
              "short_description": "Compute the distance squared from this vector to another vector `v`.",
              "line": 409,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "distSq",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.distSq",
              "outFile": "vector.html#Physics.vector.prototype.distSq"
            },
            {
              "id": "Physics.vector#dot",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the dot product of this vector with `v`.",
              "short_description": "Compute the dot product of this vector with `v`.",
              "line": 250,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "dot",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.dot",
              "outFile": "vector.html#Physics.vector.prototype.dot"
            },
            {
              "id": "Physics.vector#equals",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Determine if this vector equals another.",
              "short_description": "Determine if this vector equals another.",
              "line": 758,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "equals",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.equals",
              "outFile": "vector.html#Physics.vector.prototype.equals"
            },
            {
              "id": "Physics.vector#get",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "idx",
                      "types": [
                        "Number"
                      ],
                      "description": " The coordinate index (0 or 1)\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "idx",
                  "types": [
                    "Number"
                  ],
                  "description": " The coordinate index (0 or 1)\n\n "
                }
              ],
              "deprecated": {
                "since": "0.6.0",
                "off": "1.0.0"
              },
              "description": "Get the x or y component by index.",
              "short_description": "Get the x or y component by index.",
              "line": 156,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "get",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.get",
              "outFile": "vector.html#Physics.vector.prototype.get"
            },
            {
              "id": "Physics.vector#mult",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "m",
                      "types": [
                        "Number"
                      ],
                      "description": " amount to multiply this vector by\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "m",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to multiply this vector by\n\n "
                }
              ],
              "description": "Multiply this by a scalar quantity.\n\nSame as scaling the vector by an amount `m`.",
              "short_description": "Multiply this by a scalar quantity.\n",
              "line": 231,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "mult",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.mult",
              "outFile": "vector.html#Physics.vector.prototype.mult"
            },
            {
              "id": "Physics.vector#negate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Flip this vector in the opposite direction.",
              "short_description": "Flip this vector in the opposite direction.",
              "line": 711,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "negate",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.negate",
              "outFile": "vector.html#Physics.vector.prototype.negate"
            },
            {
              "id": "Physics.vector#norm",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "description": "Compute the norm (length) of this vector.",
              "short_description": "Compute the norm (length) of this vector.",
              "line": 361,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "norm",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.norm",
              "outFile": "vector.html#Physics.vector.prototype.norm"
            },
            {
              "id": "Physics.vector#normalize",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Normalise this vector, making it a unit vector.",
              "short_description": "Normalise this vector, making it a unit vector.",
              "line": 454,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "normalize",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.normalize",
              "outFile": "vector.html#Physics.vector.prototype.normalize"
            },
            {
              "id": "Physics.vector#normSq",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "description": "Compute the norm (length) squared of this vector.",
              "short_description": "Compute the norm (length) squared of this vector.",
              "line": 377,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "normSq",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.normSq",
              "outFile": "vector.html#Physics.vector.prototype.normSq"
            },
            {
              "id": "Physics.vector#perp",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "ccw",
                      "optional": true,
                      "types": [
                        "Boolean"
                      ],
                      "description": " flag to indicate that we should rotate counterclockwise\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "ccw",
                  "types": [
                    "Boolean"
                  ],
                  "description": " flag to indicate that we should rotate counterclockwise\n\n "
                }
              ],
              "description": "Change this vector into a vector that will be perpendicular.\n\nIn other words, rotate by (+-) 90 degrees.",
              "short_description": "Change this vector into a vector that will be perpendicular.\n",
              "line": 426,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "perp",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.perp",
              "outFile": "vector.html#Physics.vector.prototype.perp"
            },
            {
              "id": "Physics.vector#proj",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
              "short_description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
              "line": 272,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "proj",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.proj",
              "outFile": "vector.html#Physics.vector.prototype.proj"
            },
            {
              "id": "Physics.vector#rotate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply the rotational part of\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "ang",
                      "types": [
                        "Number"
                      ],
                      "description": " The angle (in radians), to rotate by\n\n "
                    },
                    {
                      "name": "o",
                      "optional": true,
                      "types": [
                        "Vectorish"
                      ],
                      "description": " The point of origin of the rotation\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the rotational part of\n\n "
                },
                {
                  "name": "ang",
                  "types": [
                    "Number"
                  ],
                  "description": " The angle (in radians), to rotate by\n\n "
                },
                {
                  "name": "o",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point of origin of the rotation\n\n "
                }
              ],
              "description": "Rotate this vector.\n\nAn angle and rotation origin can be specified,\nor a transform can be specified and only the rotation\nportion of that transform will be applied",
              "short_description": "Rotate this vector.\n",
              "line": 535,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "rotate",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.rotate",
              "outFile": "vector.html#Physics.vector.prototype.rotate"
            },
            {
              "id": "Physics.vector#rotateInv",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply the inverse rotational part of\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse rotational part of\n\n "
                }
              ],
              "description": "Apply the inverse rotation of a transform.\n\nOnly the inverse rotation portion of\nthat transform will be applied.",
              "short_description": "Apply the inverse rotation of a transform.\n",
              "line": 577,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "rotateInv",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.rotateInv",
              "outFile": "vector.html#Physics.vector.prototype.rotateInv"
            },
            {
              "id": "Physics.vector#set",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " x coordinate\n\n "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " y coordinate\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " y coordinate\n\n "
                }
              ],
              "description": "Sets the x and y components of this vector.",
              "short_description": "Sets the x and y components of this vector.",
              "line": 141,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "set",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.set",
              "outFile": "vector.html#Physics.vector.prototype.set"
            },
            {
              "id": "Physics.vector#sub",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " amount to subtract from the x coordinate\n\n "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " amount to subtract from the y coordinate\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to subtract from the x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to subtract from the y coordinate\n\n "
                }
              ],
              "description": "Subtract scalars [[Physics.vector]] from the coordinates.",
              "short_description": "Subtract scalars [[Physics.vector]] from the coordinates.",
              "line": 214,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "sub",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.sub",
              "outFile": "vector.html#Physics.vector.prototype.sub"
            },
            {
              "id": "Physics.vector#swap",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Swap values with other vector.",
              "short_description": "Swap values with other vector.",
              "line": 665,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "swap",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.swap",
              "outFile": "vector.html#Physics.vector.prototype.swap"
            },
            {
              "id": "Physics.vector#toString",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "String"
                    }
                  ]
                }
              ],
              "description": "Get a formatted string of this vector's coordinates.",
              "short_description": "Get a formatted string of this vector's coordinates.",
              "line": 746,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "toString",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.toString",
              "outFile": "vector.html#Physics.vector.prototype.toString"
            },
            {
              "id": "Physics.vector#transform",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply\n\n "
                }
              ],
              "description": "Apply a [[Physics.transform]] to this vector.",
              "short_description": "Apply a [[Physics.transform]] to this vector.",
              "line": 480,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "transform",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.transform",
              "outFile": "vector.html#Physics.vector.prototype.transform"
            },
            {
              "id": "Physics.vector#transformInv",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply the inverse of\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse of\n\n "
                }
              ],
              "description": "Apply an inverse [[Physics.transform]] to this vector.",
              "short_description": "Apply an inverse [[Physics.transform]] to this vector.",
              "line": 504,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "transformInv",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.transformInv",
              "outFile": "vector.html#Physics.vector.prototype.transformInv"
            },
            {
              "id": "Physics.vector#translate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply the translational part of\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the translational part of\n\n "
                }
              ],
              "description": "Apply the translation of a transform.\n\nOnly the translation portion of\nthat transform will be applied.",
              "short_description": "Apply the translation of a transform.\n",
              "line": 594,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "translate",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.translate",
              "outFile": "vector.html#Physics.vector.prototype.translate"
            },
            {
              "id": "Physics.vector#translateInv",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "t",
                      "types": [
                        "Physics.transform"
                      ],
                      "description": " The transformation to apply the inverse translational part of\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse translational part of\n\n "
                }
              ],
              "description": "Apply the inverse translation of a transform.\n\nOnly the inverse translation portion of\nthat transform will be applied.",
              "short_description": "Apply the inverse translation of a transform.\n",
              "line": 608,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "translateInv",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.translateInv",
              "outFile": "vector.html#Physics.vector.prototype.translateInv"
            },
            {
              "id": "Physics.vector#vadd",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " vector to add\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " vector to add\n\n "
                }
              ],
              "description": "Add a [[Physics.vector]] to `this`.",
              "short_description": "Add a [[Physics.vector]] to `this`.",
              "line": 167,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "vadd",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.vadd",
              "outFile": "vector.html#Physics.vector.prototype.vadd"
            },
            {
              "id": "Physics.vector#values",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "description": "Get the coordinate values as an object literal.",
              "short_description": "Get the coordinate values as an object literal.",
              "line": 682,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "values",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.values",
              "outFile": "vector.html#Physics.vector.prototype.values"
            },
            {
              "id": "Physics.vector#vproj",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " The other vector\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
              "short_description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
              "line": 284,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "vproj",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.vproj",
              "outFile": "vector.html#Physics.vector.prototype.vproj"
            },
            {
              "id": "Physics.vector#vsub",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "v",
                      "types": [
                        "Physics.vector"
                      ],
                      "description": " vector to subtract\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " vector to subtract\n\n "
                }
              ],
              "description": "Subtract a [[Physics.vector]] from `this`.",
              "short_description": "Subtract a [[Physics.vector]] from `this`.",
              "line": 182,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "vsub",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.vsub",
              "outFile": "vector.html#Physics.vector.prototype.vsub"
            },
            {
              "id": "Physics.vector#x",
              "type": "namespace",
              "description": "Getter/setter property for the x coordinate.",
              "short_description": "Getter/setter property for the x coordinate.",
              "line": 103,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "x",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.x",
              "outFile": "vector.html#Physics.vector.prototype.x"
            },
            {
              "id": "Physics.vector#y",
              "type": "namespace",
              "description": "Getter/setter property for the y coordinate.",
              "short_description": "Getter/setter property for the y coordinate.",
              "line": 118,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "y",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.y",
              "outFile": "vector.html#Physics.vector.prototype.y"
            },
            {
              "id": "Physics.vector#zero",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Set the coordinates of this vector to zero.",
              "short_description": "Set the coordinates of this vector to zero.",
              "line": 696,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "zero",
              "name_prefix": "Physics.vector#",
              "path": "Physics.vector.prototype.zero",
              "outFile": "vector.html#Physics.vector.prototype.zero"
            },
            {
              "id": "Physics.vector.axis",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "description": "Read-only axis vectors for general reference.\n\nExample:\n\n```javascript\nPhysics.vector.axis[0]; // The x axis unit vector\nPhysics.vector.axis[1]; // The y axis unit vector\n```",
              "short_description": "Read-only axis vectors for general reference.\n",
              "line": 777,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "axis",
              "name_prefix": "Physics.vector.",
              "path": "Physics.vector.axis",
              "outFile": "vector.html#Physics.vector.axis"
            },
            {
              "id": "new Physics.vector",
              "type": "constructor",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "x",
                      "types": [
                        "Number"
                      ],
                      "description": " The x coordinate\n\n "
                    },
                    {
                      "name": "y",
                      "types": [
                        "Number"
                      ],
                      "description": " The y coordinate\n\n "
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "vect",
                      "types": [
                        "Vectorish"
                      ],
                      "description": " A vector-like object to clone\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coordinate\n\n "
                },
                {
                  "name": "vect",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " A vector-like object to clone\n\n "
                }
              ],
              "description": "Vector Constructor.",
              "short_description": "Vector Constructor.",
              "line": 59,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "new",
              "name_prefix": "Physics.vector.",
              "path": "Physics.vector.new",
              "outFile": "vector.html#Physics.vector.new"
            },
            {
              "id": "Physics.vector.zero",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "zeroVector"
                    }
                  ]
                }
              ],
              "description": "Read-only zero vector for reference",
              "short_description": "Read-only zero vector for reference",
              "line": 787,
              "aliases": [],
              "children": [],
              "file": "src/math/vector.js",
              "name": "zero",
              "name_prefix": "Physics.vector.",
              "path": "Physics.vector.zero",
              "outFile": "vector.html#Physics.vector.zero"
            }
          ],
          "file": "src/math/vector.js",
          "subclasses": [],
          "name": "vector",
          "name_prefix": "Physics.",
          "path": "Physics.vector",
          "outFile": "vector.html"
        },
        {
          "id": "Physics.world",
          "type": "class",
          "related_to": "Physics",
          "description": "The world class and factory function.\n\nUse [[Physics]] to create worlds.",
          "short_description": "The world class and factory function.\n",
          "line": 8,
          "aliases": [],
          "children": [
            {
              "id": "Physics.world#add",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "things",
                      "types": [
                        "Object",
                        "Array"
                      ],
                      "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "things",
                  "types": [
                    "Object",
                    "Array"
                  ],
                  "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
                }
              ],
              "chainable": true,
              "description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
              "short_description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
              "line": 204,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "add",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.add",
              "outFile": "world.html#Physics.world.prototype.add"
            },
            {
              "id": "Physics.world#addBehavior",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "behavior",
                      "types": [
                        "Behavior"
                      ],
                      "description": " The behavior to add\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "behavior",
                  "types": [
                    "Behavior"
                  ],
                  "description": " The behavior to add\n\n     "
                }
              ],
              "chainable": true,
              "description": "Add a behavior to the world",
              "short_description": "Add a behavior to the world",
              "line": 467,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "addBehavior",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.addBehavior",
              "outFile": "world.html#Physics.world.prototype.addBehavior"
            },
            {
              "id": "Physics.world#addBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The behavior to add\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The behavior to add\n\n     "
                }
              ],
              "chainable": true,
              "description": "Add a body to the world",
              "short_description": "Add a body to the world",
              "line": 535,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "addBody",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.addBody",
              "outFile": "world.html#Physics.world.prototype.addBody"
            },
            {
              "id": "Physics.world#destroy",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": []
                }
              ],
              "description": "Destroy the world.\n(Bwahahahahaha!)",
              "short_description": "Destroy the world.\n(Bwahahahahaha!)",
              "line": 803,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "destroy",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.destroy",
              "outFile": "world.html#Physics.world.prototype.destroy"
            },
            {
              "id": "Physics.world#find",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "rules",
                      "types": [
                        "Object"
                      ],
                      "description": " Query rules\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "filter",
                      "arguments": [
                        {
                          "name": "body",
                          "description": " Each body in the world\n\n     ",
                          "types": [
                            "Body"
                          ]
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " Filter function called to check bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "rules",
                  "types": [
                    "Object"
                  ],
                  "description": " Query rules\n\n     "
                },
                {
                  "name": "filter",
                  "types": [
                    "Function"
                  ],
                  "description": " Filter function called to check bodies\n\n     "
                },
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Each body in the world\n\n     "
                }
              ],
              "related_to": "Physics.query",
              "description": "Find all matching bodies based on query rules.",
              "short_description": "Find all matching bodies based on query rules.",
              "line": 624,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "find",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.find",
              "outFile": "world.html#Physics.world.prototype.find"
            },
            {
              "id": "Physics.world#findOne",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "rules",
                      "types": [
                        "Object"
                      ],
                      "description": " Query rules.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Body"
                    },
                    {
                      "type": false
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "filter",
                      "arguments": [
                        {
                          "name": "body",
                          "description": " Each body in the world\n\n     ",
                          "types": [
                            "Body"
                          ]
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " Filter function called to check bodies\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Body"
                    },
                    {
                      "type": false
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "rules",
                  "types": [
                    "Object"
                  ],
                  "description": " Query rules.\n\n     "
                },
                {
                  "name": "filter",
                  "types": [
                    "Function"
                  ],
                  "description": " Filter function called to check bodies\n\n     "
                },
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Each body in the world\n\n     "
                }
              ],
              "related_to": "Physics.query",
              "description": "Find first matching body based on query rules.",
              "short_description": "Find first matching body based on query rules.",
              "line": 606,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "findOne",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.findOne",
              "outFile": "world.html#Physics.world.prototype.findOne"
            },
            {
              "id": "Physics.world#getBehaviors",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " Array of behaviors\n\n     "
                }
              ],
              "description": "Get copied list of behaviors in the world",
              "short_description": "Get copied list of behaviors in the world",
              "line": 492,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "getBehaviors",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.getBehaviors",
              "outFile": "world.html#Physics.world.prototype.getBehaviors"
            },
            {
              "id": "Physics.world#getBodies",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " Array of bodies\n\n     "
                }
              ],
              "description": "Get copied list of bodies in the world",
              "short_description": "Get copied list of bodies in the world",
              "line": 560,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "getBodies",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.getBodies",
              "outFile": "world.html#Physics.world.prototype.getBodies"
            },
            {
              "id": "Physics.world#has",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "thing",
                      "types": [
                        "Object"
                      ],
                      "description": " The thing to test\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Boolean",
                      "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "thing",
                  "types": [
                    "Object"
                  ],
                  "description": " The thing to test\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
                }
              ],
              "chainable": true,
              "description": "Determine if a thing has been added to world.",
              "short_description": "Determine if a thing has been added to world.",
              "line": 305,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "has",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.has",
              "outFile": "world.html#Physics.world.prototype.has"
            },
            {
              "id": "Physics.world#init",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " configuration options (see constructor)\n\n     "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "world"
                        },
                        {
                          "name": "Physics"
                        }
                      ],
                      "callback": true,
                      "optional": true,
                      "types": [
                        "Function",
                        "Array"
                      ],
                      "description": " Callback function or array of callbacks called with this === world\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see constructor)\n\n     "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function",
                    "Array"
                  ],
                  "description": " Callback function or array of callbacks called with this === world\n\n     "
                }
              ],
              "internal": true,
              "related_to": "new Physics.world",
              "description": "Initialization",
              "short_description": "Initialization",
              "line": 144,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "init",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.init",
              "outFile": "world.html#Physics.world.prototype.init"
            },
            {
              "id": "Physics.world#integrator",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "integrator",
                      "optional": true,
                      "types": [
                        "Integrator"
                      ],
                      "description": " The integrator to set on the world\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Integrator",
                      "description": " The currently set integrator if `integrator` not specified\n\n     "
                    },
                    {
                      "type": "this",
                      "description": " for chaining if `integrator` specified\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "integrator",
                  "types": [
                    "Integrator"
                  ],
                  "description": " The integrator to set on the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Integrator",
                  "description": " The currently set integrator if `integrator` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `integrator` specified\n\n     "
                }
              ],
              "chainable": true,
              "description": "Get or Set the integrator",
              "short_description": "Get or Set the integrator",
              "line": 351,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "integrator",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.integrator",
              "outFile": "world.html#Physics.world.prototype.integrator"
            },
            {
              "id": "Physics.world#isPaused",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " Returns `true` if world is paused, `false` otherwise.\n\n     "
                }
              ],
              "description": "Determine if world is paused.",
              "short_description": "Determine if world is paused.",
              "line": 792,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "isPaused",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.isPaused",
              "outFile": "world.html#Physics.world.prototype.isPaused"
            },
            {
              "id": "Physics.world#iterate",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dt",
                      "types": [
                        "Number"
                      ],
                      "description": " The timestep\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " The timestep\n\n     "
                }
              ],
              "internal": true,
              "description": "Do a single iteration.",
              "short_description": "Do a single iteration.",
              "line": 639,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "iterate",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.iterate",
              "outFile": "world.html#Physics.world.prototype.iterate"
            },
            {
              "id": "Physics.world#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "cfg",
                      "types": [
                        "Object"
                      ],
                      "description": " configuration options (see constructor)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " Options container\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see constructor)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " Options container\n\n     "
                }
              ],
              "description": "Set config options. Also access options by `.options.<option>`.",
              "short_description": "Set config options. Also access options by `.options.<option>`.",
              "line": 196,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "options",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.options",
              "outFile": "world.html#Physics.world.prototype.options"
            },
            {
              "id": "Physics.world#pause",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "chainable": true,
              "description": "Pause the world (step calls do nothing).",
              "short_description": "Pause the world (step calls do nothing).",
              "line": 767,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "pause",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.pause",
              "outFile": "world.html#Physics.world.prototype.pause"
            },
            {
              "id": "Physics.world#remove",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "things",
                      "types": [
                        "Object",
                        "Array"
                      ],
                      "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "things",
                  "types": [
                    "Object",
                    "Array"
                  ],
                  "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
                }
              ],
              "chainable": true,
              "description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
              "short_description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
              "line": 252,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "remove",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.remove",
              "outFile": "world.html#Physics.world.prototype.remove"
            },
            {
              "id": "Physics.world#removeBehavior",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "behavior",
                      "types": [
                        "Behavior"
                      ],
                      "description": " The behavior to remove\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "behavior",
                  "types": [
                    "Behavior"
                  ],
                  "description": " The behavior to remove\n\n     "
                }
              ],
              "chainable": true,
              "description": "Remove a behavior from the world",
              "short_description": "Remove a behavior from the world",
              "line": 504,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "removeBehavior",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.removeBehavior",
              "outFile": "world.html#Physics.world.prototype.removeBehavior"
            },
            {
              "id": "Physics.world#removeBody",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " The body to remove\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The body to remove\n\n     "
                }
              ],
              "chainable": true,
              "description": "Remove a body from the world",
              "short_description": "Remove a body from the world",
              "line": 572,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "removeBody",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.removeBody",
              "outFile": "world.html#Physics.world.prototype.removeBody"
            },
            {
              "id": "Physics.world#render",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "chainable": true,
              "description": "Render current world state using the renderer",
              "short_description": "Render current world state using the renderer",
              "line": 747,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "render",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.render",
              "outFile": "world.html#Physics.world.prototype.render"
            },
            {
              "id": "Physics.world#renderer",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "renderer",
                      "optional": true,
                      "types": [
                        "Renderer"
                      ],
                      "description": " The renderer to set on the world\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Renderer",
                      "description": " The currently set renderer if `renderer` not specified\n\n     "
                    },
                    {
                      "type": "this",
                      "description": " for chaining if `renderer` specified\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "renderer",
                  "types": [
                    "Renderer"
                  ],
                  "description": " The renderer to set on the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Renderer",
                  "description": " The currently set renderer if `renderer` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `renderer` specified\n\n     "
                }
              ],
              "chainable": true,
              "description": "Get or Set the renderer",
              "short_description": "Get or Set the renderer",
              "line": 391,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "renderer",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.renderer",
              "outFile": "world.html#Physics.world.prototype.renderer"
            },
            {
              "id": "Physics.world#step",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "now",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " Current unix timestamp\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "now",
                  "types": [
                    "Number"
                  ],
                  "description": " Current unix timestamp\n\n     "
                }
              ],
              "chainable": true,
              "description": "Step the world up to specified time or do one step if no time is specified.",
              "short_description": "Step the world up to specified time or do one step if no time is specified.",
              "line": 650,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "step",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.step",
              "outFile": "world.html#Physics.world.prototype.step"
            },
            {
              "id": "Physics.world#timestep",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "dt",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The time step for the world\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Number",
                      "description": " The currently set time step if `dt` not specified\n\n     "
                    },
                    {
                      "type": "this",
                      "description": " for chaining if `dt` specified\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "dt",
                  "types": [
                    "Number"
                  ],
                  "description": " The time step for the world\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The currently set time step if `dt` not specified\n\n     "
                },
                {
                  "type": "this",
                  "description": " for chaining if `dt` specified\n\n     "
                }
              ],
              "chainable": true,
              "description": "Get or Set the timestep",
              "short_description": "Get or Set the timestep",
              "line": 431,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "timestep",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.timestep",
              "outFile": "world.html#Physics.world.prototype.timestep"
            },
            {
              "id": "Physics.world#unpause",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "chainable": true,
              "description": "Unpause the world (step calls continue as usual).",
              "short_description": "Unpause the world (step calls continue as usual).",
              "line": 779,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "unpause",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.unpause",
              "outFile": "world.html#Physics.world.prototype.unpause"
            },
            {
              "id": "Physics.world#wakeUpAll",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "this",
                  "description": " for chaining\n\n     "
                }
              ],
              "chainable": true,
              "description": "Wake up all bodies in world.",
              "short_description": "Wake up all bodies in world.",
              "line": 451,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "wakeUpAll",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.wakeUpAll",
              "outFile": "world.html#Physics.world.prototype.wakeUpAll"
            },
            {
              "id": "Physics.world#warp",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "warp",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The time warp factor\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    },
                    {
                      "type": "Number"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "warp",
                  "types": [
                    "Number"
                  ],
                  "description": " The time warp factor\n\n     "
                }
              ],
              "description": "Speed up or slow down the iteration by this factor.\n\nExample:\n```javascript\n// slow motion... 10x slower\nworld.warp( 0.01 );\n```",
              "short_description": "Speed up or slow down the iteration by this factor.\n",
              "line": 732,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "warp",
              "name_prefix": "Physics.world#",
              "path": "Physics.world.prototype.warp",
              "outFile": "world.html#Physics.world.prototype.warp"
            },
            {
              "id": "new Physics.world",
              "type": "constructor",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " configuration options (see description)\n\n "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "world",
                          "description": " The current world created\n\n ",
                          "types": [
                            "Physics.world"
                          ]
                        },
                        {
                          "name": "Physics",
                          "description": " The Physics namespace\n\n ",
                          "types": [
                            "Physics"
                          ]
                        }
                      ],
                      "callback": true,
                      "optional": true,
                      "types": [
                        "Function",
                        "Array"
                      ],
                      "description": " Callback function or array of callbacks called with this === world\n\n "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " configuration options (see description)\n\n "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function",
                    "Array"
                  ],
                  "description": " Callback function or array of callbacks called with this === world\n\n "
                },
                {
                  "name": "world",
                  "types": [
                    "Physics.world"
                  ],
                  "description": " The current world created\n\n "
                },
                {
                  "name": "Physics",
                  "types": [
                    "Physics"
                  ],
                  "description": " The Physics namespace\n\n "
                }
              ],
              "alias_of": "Physics",
              "description": "World Constructor.\n\nUse [[Physics]] to create worlds.\n\nConfiguration options and defaults:\n\n```javascript\n{\n // default timestep\n timestep: 6,\n // maximum number of iterations per step\n maxIPF: 4,\n\n // default integrator\n integrator: 'verlet',\n\n // is sleeping disabled?\n sleepDisabled: false,\n // speed at which bodies wake up\n sleepSpeedLimit: 0.1,\n // variance in position below which bodies fall asleep\n sleepVarianceLimit: 2,\n // time (ms) before sleepy bodies fall asleep\n sleepTimeLimit: 500\n}\n```\n\nIf called with an array of functions, and any functions\nreturn a [promise-like object](http://promises-aplus.github.io/promises-spec/),\neach remaining callback will be called only when that promise is resolved.\n\nExample:\n\n```javascript\n// hypothetical resources need to be loaded...\nPhysics( cfg, [\n    function( world ){\n        var dfd = $.Deferred()\n            ,images = []\n            ,toLoad = myImages.length\n            ,callback = function(){\n                toLoad--;\n                // wait for all images to be loaded\n                if ( toLoad <= 0 ){\n                    dfd.resolve();\n                }\n            }\n            ;\n\n        // load images\n        $.each(myImages, function( src ){\n            var img = new Image();\n            img.onload = callback;\n            img.src = src;\n        });\n\n        return dfd.promise();\n    },\n    function( world ){\n        // won't be executed until images are loaded\n        // initialize world... etc...\n    }\n]);\n```",
              "short_description": "World Constructor.\n",
              "line": 124,
              "aliases": [],
              "children": [],
              "file": "src/core/world.js",
              "name": "new",
              "name_prefix": "Physics.world.",
              "path": "Physics.world.new",
              "outFile": "world.html#Physics.world.new"
            }
          ],
          "file": "src/core/world.js",
          "subclasses": [],
          "name": "world",
          "name_prefix": "Physics.",
          "path": "Physics.world",
          "outFile": "world.html"
        }
      ],
      "file": "src/intro.js",
      "name": "Physics",
      "path": "Physics",
      "outFile": "intro.html#Physics"
    },
    "Physics.util": {
      "id": "Physics.util",
      "type": "namespace",
      "description": "Namespace for utility functions.",
      "short_description": "Namespace for utility functions.",
      "line": 47,
      "aliases": [],
      "children": [
        {
          "id": "Physics.util.bind",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to bind scope to\n\n "
                },
                {
                  "name": "scope",
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to give to `fn`\n\n "
                },
                {
                  "name": "args",
                  "ellipsis": true,
                  "optional": true,
                  "types": [
                    "Mixed"
                  ],
                  "description": " Arguments to send to `fn`\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The function to bind scope to\n\n "
            },
            {
              "name": "scope",
              "types": [
                "Object"
              ],
              "description": " The scope to give to `fn`\n\n "
            },
            {
              "name": "args",
              "types": [
                "Mixed"
              ],
              "description": " Arguments to send to `fn`\n\n "
            }
          ],
          "description": "Bind a scope to a function.\n\nBasically the same functionality as [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).",
          "short_description": "Bind a scope to a function.\n",
          "line": 183,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "bind",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.bind",
          "outFile": "helpers.html#Physics.util.bind"
        },
        {
          "id": "Physics.util.clearArray",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to clear\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array",
                  "description": " The array passed in\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " The array to clear\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " The array passed in\n\n "
            }
          ],
          "description": "Quickly clear an array.",
          "short_description": "Quickly clear an array.",
          "line": 33,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "clearArray",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.clearArray",
          "outFile": "helpers.html#Physics.util.clearArray"
        },
        {
          "id": "Physics.util.decorator",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "type",
                  "types": [
                    "String"
                  ],
                  "description": " The name of the factory you are creating\n\n "
                },
                {
                  "name": "protoDef",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The top-level prototype\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The factory function\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "type",
              "types": [
                "String"
              ],
              "description": " The name of the factory you are creating\n\n "
            },
            {
              "name": "protoDef",
              "types": [
                "Object"
              ],
              "description": " The top-level prototype\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The factory function\n\n "
            }
          ],
          "related_to": "factory",
          "description": "Facilitates creation of decorator factory functions.\n\nSee the [[factory]] definition for the factory signatures.\n[For full documentation and examples, please visit the wiki](https://github.com/wellcaffeinated/PhysicsJS/wiki/Fundamentals#the-factory-pattern).\n\nExample:\n\n```javascript\nvar factory = Physics.util.decorator('factory', {\n     // prototype methods...\n     method: function( args ){\n     }\n});\n\n// define\nfactory( 'name', 'parent-name', function( parent ){\n\n     // extend further...\n     return {\n         // overrides\n         init: function( cfg ){\n             parent.init.call(this, cfg);\n         }\n     };\n});\n\n// instantiate\nvar options = { key: 'val' };\nvar instance = factory( 'name', options );\n```",
          "short_description": "Facilitates creation of decorator factory functions.\n",
          "line": 38,
          "aliases": [],
          "children": [
            {
              "id": "factory",
              "type": "method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "name",
                      "types": [
                        "String"
                      ],
                      "description": "  The class name\n\n "
                    },
                    {
                      "name": "parentName",
                      "optional": true,
                      "types": [
                        "String"
                      ],
                      "description": " The name of parent class to extend\n\n "
                    },
                    {
                      "name": "decorator",
                      "types": [
                        "Function"
                      ],
                      "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                    },
                    {
                      "name": "cfg",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration to pass to the class initializer\n\n "
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "name",
                      "types": [
                        "String"
                      ],
                      "description": "  The class name\n\n "
                    },
                    {
                      "name": "cfg",
                      "types": [
                        "Object"
                      ],
                      "description": " The configuration to pass to the class initializer\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": "  The class name\n\n "
                },
                {
                  "name": "parentName",
                  "types": [
                    "String"
                  ],
                  "description": " The name of parent class to extend\n\n "
                },
                {
                  "name": "decorator",
                  "types": [
                    "Function"
                  ],
                  "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                },
                {
                  "name": "cfg",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration to pass to the class initializer\n\n "
                }
              ],
              "belongs_to": "Physics.util.decorator",
              "description": "Factory function for definition and instantiation of subclasses.\n\nUse the first signature (once) to define it first.\nIf defining without the \"cfg\" parameter, void will be returned. Otherwise the class instance will be returned.\n\nSee [[Physics.util.decorator]] for more information.",
              "short_description": "Factory function for definition and instantiation of subclasses.\n",
              "line": 129,
              "aliases": [],
              "children": [],
              "file": "src/util/decorator.js",
              "name": "factory",
              "path": "factory",
              "outFile": "decorator.html#factory"
            }
          ],
          "file": "src/util/decorator.js",
          "name": "decorator",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.decorator",
          "outFile": "decorator.html#Physics.util.decorator"
        },
        {
          "id": "Physics.util.defaults",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "object",
                  "types": [
                    "Object"
                  ],
                  "description": " The destination object\n\n "
                },
                {
                  "name": "source",
                  "ellipsis": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The source objects\n\n "
                },
                {
                  "name": "callback",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The function to customize assigning values\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "object",
              "types": [
                "Object"
              ],
              "description": " The destination object\n\n "
            },
            {
              "name": "source",
              "types": [
                "Object"
              ],
              "description": " The source objects\n\n "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " The function to customize assigning values\n\n "
            }
          ],
          "description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
          "short_description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
          "line": 650,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "defaults",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.defaults",
          "outFile": "helpers.html#Physics.util.defaults"
        },
        {
          "id": "Physics.util.extend",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "object",
                  "types": [
                    "Object"
                  ],
                  "description": " The destination object\n\n "
                },
                {
                  "name": "source",
                  "ellipsis": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The source objects\n\n "
                },
                {
                  "name": "callback",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The function to customize assigning values\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "object",
              "types": [
                "Object"
              ],
              "description": " The destination object\n\n "
            },
            {
              "name": "source",
              "types": [
                "Object"
              ],
              "description": " The source objects\n\n "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " The function to customize assigning values\n\n "
            }
          ],
          "description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
          "short_description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
          "line": 640,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "extend",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.extend",
          "outFile": "helpers.html#Physics.util.extend"
        },
        {
          "id": "Physics.util.filter",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " Collection of values to test\n\n "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "value",
                      "description": " The value to test\n\n ",
                      "types": [
                        "Mixed"
                      ]
                    },
                    {
                      "name": "index",
                      "description": " The index of value in collection\n\n ",
                      "types": [
                        "Number"
                      ]
                    },
                    {
                      "name": "collection",
                      "description": " Collection of values to test\n\n ",
                      "types": [
                        "Array"
                      ]
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The test function\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " Collection of values to test\n\n "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The test function\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            },
            {
              "name": "index",
              "types": [
                "Number"
              ],
              "description": " The index of value in collection\n\n "
            },
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " The input collection\n\n "
            }
          ],
          "description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
          "short_description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
          "line": 235,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "filter",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.filter",
          "outFile": "helpers.html#Physics.util.filter"
        },
        {
          "id": "Physics.util.find",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "collection",
                  "types": [
                    "Array"
                  ],
                  "description": " Collection of values to test\n\n "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "value",
                      "description": " The value to test\n\n ",
                      "types": [
                        "Mixed"
                      ]
                    },
                    {
                      "name": "index",
                      "description": " The index of value in collection\n\n ",
                      "types": [
                        "Number"
                      ]
                    },
                    {
                      "name": "collection",
                      "description": " Collection of values to test\n\n ",
                      "types": [
                        "Array"
                      ]
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The test function\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Mixed"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " Collection of values to test\n\n "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The test function\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            },
            {
              "name": "index",
              "types": [
                "Number"
              ],
              "description": " The index of value in collection\n\n "
            },
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " The input collection\n\n "
            }
          ],
          "description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
          "short_description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
          "line": 209,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "find",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.find",
          "outFile": "helpers.html#Physics.util.find"
        },
        {
          "id": "Physics.util.indexOf",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to search\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to find\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The index of `value` in the array OR `-1` if not found\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " The array to search\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to find\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The index of `value` in the array OR `-1` if not found\n\n "
            }
          ],
          "description": "Fast indexOf implementation.",
          "short_description": "Fast indexOf implementation.",
          "line": 9,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "indexOf",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.indexOf",
          "outFile": "helpers.html#Physics.util.indexOf"
        },
        {
          "id": "Physics.util.isArray",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "description": "Test if a value is an array.",
          "short_description": "Test if a value is an array.",
          "line": 502,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "isArray",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.isArray",
          "outFile": "helpers.html#Physics.util.isArray"
        },
        {
          "id": "Physics.util.isFunction",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "description": "Test if a value is a function.",
          "short_description": "Test if a value is a function.",
          "line": 494,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "isFunction",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.isFunction",
          "outFile": "helpers.html#Physics.util.isFunction"
        },
        {
          "id": "Physics.util.isObject",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "description": "Test if a value is an object.",
          "short_description": "Test if a value is an object.",
          "line": 476,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "isObject",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.isObject",
          "outFile": "helpers.html#Physics.util.isObject"
        },
        {
          "id": "Physics.util.isPlainObject",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to test\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "description": "Test if a value is a plain javascript object.",
          "short_description": "Test if a value is a plain javascript object.",
          "line": 540,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "isPlainObject",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.isPlainObject",
          "outFile": "helpers.html#Physics.util.isPlainObject"
        },
        {
          "id": "Physics.util.options",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "def",
                  "types": [
                    "Object"
                  ],
                  "description": " Default options to set\n\n "
                },
                {
                  "name": "target",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " Where to copy the options to. Defaults to the returned function.\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The options function\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "def",
              "types": [
                "Object"
              ],
              "description": " Default options to set\n\n "
            },
            {
              "name": "target",
              "types": [
                "Object"
              ],
              "description": " Where to copy the options to. Defaults to the returned function.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The options function\n\n "
            }
          ],
          "description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n\nExample:\n\n```javascript\nthis.options = Physics.util.options({ foo: 'bar', opt: 'def' });\nthis.options({ opt: 'myVal' });\n\nthis.options.foo; // === 'bar'\nthis.options.def; // === 'myVal'\n\n// can also change defaults later\nthis.options.defaults({ foo: 'baz' });\n\n// can add a change callback\nthis.options.onChange(function( opts ){\n    // some option changed\n    // opts is the target\n});\n```",
          "short_description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n",
          "line": 102,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "options",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.options",
          "outFile": "helpers.html#Physics.util.options"
        },
        {
          "id": "Physics.util.pairHash",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "id1",
                  "types": [
                    "Number"
                  ],
                  "description": " The id of the first thing\n\n "
                },
                {
                  "name": "id2",
                  "types": [
                    "Number"
                  ],
                  "description": " The id of the second thing\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " A unique numeric hash (valid for values < 2^16)\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "id1",
              "types": [
                "Number"
              ],
              "description": " The id of the first thing\n\n "
            },
            {
              "name": "id2",
              "types": [
                "Number"
              ],
              "description": " The id of the second thing\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " A unique numeric hash (valid for values < 2^16)\n\n "
            }
          ],
          "description": "Generate a unique numeric hash from two input IDs.\n\nUseful for speedy indexing of pairs.",
          "short_description": "Generate a unique numeric hash from two input IDs.\n",
          "line": 157,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "pairHash",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.pairHash",
          "outFile": "helpers.html#Physics.util.pairHash"
        },
        {
          "id": "Physics.util.pubsub",
          "type": "class",
          "description": "Fast pubsub implementation.\n\nCan be mixed into other classes easily.",
          "short_description": "Fast pubsub implementation.\n",
          "line": 19,
          "aliases": [],
          "children": [
            {
              "id": "Physics.util.pubsub#emit",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "data",
                      "optional": true,
                      "types": [
                        "Mixed"
                      ],
                      "description": " The data to send\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "data",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The data to send\n\n     "
                }
              ],
              "description": "Publish data to a topic.",
              "short_description": "Publish data to a topic.",
              "line": 160,
              "aliases": [],
              "children": [],
              "file": "src/util/pubsub.js",
              "name": "emit",
              "name_prefix": "Physics.util.pubsub#",
              "path": "Physics.util.pubsub.prototype.emit",
              "outFile": "pubsub.html#Physics.util.pubsub.prototype.emit"
            },
            {
              "id": "Physics.util.pubsub#off",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                    },
                    {
                      "name": "fn",
                      "types": [
                        "Function"
                      ],
                      "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                    },
                    {
                      "name": "scope",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "topicCfg",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                },
                {
                  "name": "topicCfg",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                },
                {
                  "name": "scope",
                  "types": [
                    "Object"
                  ],
                  "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                }
              ],
              "description": "Unsubscribe callback(s) from topic(s).",
              "short_description": "Unsubscribe callback(s) from topic(s).",
              "line": 96,
              "aliases": [],
              "children": [],
              "file": "src/util/pubsub.js",
              "name": "off",
              "name_prefix": "Physics.util.pubsub#",
              "path": "Physics.util.pubsub.prototype.off",
              "outFile": "pubsub.html#Physics.util.pubsub.prototype.off"
            },
            {
              "id": "Physics.util.pubsub#on",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "data"
                        },
                        {
                          "name": "event"
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function (if not using Object as previous argument)\n\n     "
                    },
                    {
                      "name": "scope",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "topicConfig",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    },
                    {
                      "name": "scope",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "topicConfig",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function (if not using Object as previous argument)\n\n     "
                },
                {
                  "name": "data",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The data sent from the call to `.emit()`\n\n     "
                },
                {
                  "name": "event",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                },
                {
                  "name": "scope",
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "description": "Subscribe callback(s) to a topic(s).",
              "short_description": "Subscribe callback(s) to a topic(s).",
              "line": 41,
              "aliases": [],
              "children": [],
              "file": "src/util/pubsub.js",
              "name": "on",
              "name_prefix": "Physics.util.pubsub#",
              "path": "Physics.util.pubsub.prototype.on",
              "outFile": "pubsub.html#Physics.util.pubsub.prototype.on"
            },
            {
              "id": "Physics.util.pubsub#one",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "topic",
                      "types": [
                        "String"
                      ],
                      "description": " The topic name\n\n     "
                    },
                    {
                      "name": "fn",
                      "arguments": [
                        {
                          "name": "data"
                        },
                        {
                          "name": "event"
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function (if not using Object as previous argument)\n\n     "
                    },
                    {
                      "name": "scope",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "topicConfig",
                      "types": [
                        "Object"
                      ],
                      "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                    },
                    {
                      "name": "scope",
                      "optional": true,
                      "types": [
                        "Object"
                      ],
                      "description": " The scope to bind callback to\n\n     "
                    },
                    {
                      "name": "priority",
                      "optional": true,
                      "types": [
                        "Number"
                      ],
                      "description": " The priority of the callback (higher is earlier)\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "topicConfig",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function (if not using Object as previous argument)\n\n     "
                },
                {
                  "name": "data",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The data sent from the call to `.emit()`\n\n     "
                },
                {
                  "name": "event",
                  "types": [
                    "Object"
                  ],
                  "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                },
                {
                  "name": "scope",
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "description": "Subscribe callback(s) to a topic(s), but only ONCE.",
              "short_description": "Subscribe callback(s) to a topic(s), but only ONCE.",
              "line": 211,
              "aliases": [],
              "children": [],
              "file": "src/util/pubsub.js",
              "name": "one",
              "name_prefix": "Physics.util.pubsub#",
              "path": "Physics.util.pubsub.prototype.one",
              "outFile": "pubsub.html#Physics.util.pubsub.prototype.one"
            }
          ],
          "file": "src/util/pubsub.js",
          "subclasses": [],
          "name": "pubsub",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.pubsub",
          "outFile": "pubsub.html"
        },
        {
          "id": "Physics.util.sortedIndex",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "array",
                  "types": [
                    "Array"
                  ],
                  "description": " The array to inspect\n\n "
                },
                {
                  "name": "value",
                  "types": [
                    "Mixed"
                  ],
                  "description": " The value to evaluate\n\n "
                },
                {
                  "name": "callback",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " Function called per iteration\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "array",
              "types": [
                "Array"
              ],
              "description": " The array to inspect\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to evaluate\n\n "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " Function called per iteration\n\n "
            }
          ],
          "description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
          "short_description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
          "line": 682,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "sortedIndex",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.sortedIndex",
          "outFile": "helpers.html#Physics.util.sortedIndex"
        },
        {
          "id": "Physics.util.throttle",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The function to throttle\n\n "
                },
                {
                  "name": "delay",
                  "types": [
                    "Number"
                  ],
                  "description": " Time in milliseconds\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The function to throttle\n\n "
            },
            {
              "name": "delay",
              "types": [
                "Number"
              ],
              "description": " Time in milliseconds\n\n "
            }
          ],
          "description": "Ensure a function is only called once every specified time span.",
          "short_description": "Ensure a function is only called once every specified time span.",
          "line": 48,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "throttle",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.throttle",
          "outFile": "helpers.html#Physics.util.throttle"
        },
        {
          "id": "Physics.util.ticker",
          "type": "class",
          "description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n\nRequires window.requestAnimationFrame... so polyfill it if you need to.",
          "short_description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n",
          "line": 8,
          "aliases": [],
          "children": [
            {
              "id": "Physics.util.ticker.isActive",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "Boolean"
                    }
                  ]
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if running, `false` otherwise.\n\n "
                }
              ],
              "description": "Determine if ticker is currently running.",
              "short_description": "Determine if ticker is currently running.",
              "line": 107,
              "aliases": [],
              "children": [],
              "file": "src/util/ticker.js",
              "name": "isActive",
              "name_prefix": "Physics.util.ticker.",
              "path": "Physics.util.ticker.isActive",
              "outFile": "ticker.html#Physics.util.ticker.isActive"
            },
            {
              "id": "Physics.util.ticker.off",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "listener",
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function previously bound\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "listener",
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function previously bound\n\n "
                }
              ],
              "description": "Unsubscribe a callback from the ticker.",
              "short_description": "Unsubscribe a callback from the ticker.",
              "line": 95,
              "aliases": [],
              "children": [],
              "file": "src/util/ticker.js",
              "name": "off",
              "name_prefix": "Physics.util.ticker.",
              "path": "Physics.util.ticker.off",
              "outFile": "ticker.html#Physics.util.ticker.off"
            },
            {
              "id": "Physics.util.ticker.on",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "listener",
                      "arguments": [
                        {
                          "name": "time",
                          "description": " The current timestamp\n\n ",
                          "types": [
                            "Number"
                          ]
                        }
                      ],
                      "callback": true,
                      "types": [
                        "Function"
                      ],
                      "description": " The callback function\n\n "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "listener",
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function\n\n "
                },
                {
                  "name": "time",
                  "types": [
                    "Number"
                  ],
                  "description": " The current timestamp\n\n "
                }
              ],
              "description": "Subscribe a callback to the ticker.",
              "short_description": "Subscribe a callback to the ticker.",
              "line": 83,
              "aliases": [],
              "children": [],
              "file": "src/util/ticker.js",
              "name": "on",
              "name_prefix": "Physics.util.ticker.",
              "path": "Physics.util.ticker.on",
              "outFile": "ticker.html#Physics.util.ticker.on"
            },
            {
              "id": "Physics.util.ticker.start",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Start the ticker",
              "short_description": "Start the ticker",
              "line": 59,
              "aliases": [],
              "children": [],
              "file": "src/util/ticker.js",
              "name": "start",
              "name_prefix": "Physics.util.ticker.",
              "path": "Physics.util.ticker.start",
              "outFile": "ticker.html#Physics.util.ticker.start"
            },
            {
              "id": "Physics.util.ticker.stop",
              "type": "class method",
              "signatures": [
                {
                  "arguments": [],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "description": "Stop the ticker",
              "short_description": "Stop the ticker",
              "line": 70,
              "aliases": [],
              "children": [],
              "file": "src/util/ticker.js",
              "name": "stop",
              "name_prefix": "Physics.util.ticker.",
              "path": "Physics.util.ticker.stop",
              "outFile": "ticker.html#Physics.util.ticker.stop"
            }
          ],
          "file": "src/util/ticker.js",
          "subclasses": [],
          "name": "ticker",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.ticker",
          "outFile": "ticker.html"
        },
        {
          "id": "Physics.util.uniq",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "array",
                  "types": [
                    "Array"
                  ],
                  "description": " The array\n\n "
                },
                {
                  "name": "isSorted",
                  "optional": true,
                  "types": [
                    "Boolean"
                  ],
                  "description": " Flag to indicate the array is sorted\n\n "
                },
                {
                  "name": "callback",
                  "optional": true,
                  "types": [
                    "Function"
                  ],
                  "description": " Mapping function\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "array",
              "types": [
                "Array"
              ],
              "description": " The array\n\n "
            },
            {
              "name": "isSorted",
              "types": [
                "Boolean"
              ],
              "description": " Flag to indicate the array is sorted\n\n "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " Mapping function\n\n "
            }
          ],
          "description": "Create an array without duplicates.",
          "short_description": "Create an array without duplicates.",
          "line": 597,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "uniq",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.uniq",
          "outFile": "helpers.html#Physics.util.uniq"
        },
        {
          "id": "Physics.util.uniqueId",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "prefix",
                  "optional": true,
                  "types": [
                    "String"
                  ],
                  "description": " Prefix to the id\n\n "
                }
              ],
              "returns": [
                {
                  "type": "String"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "prefix",
              "types": [
                "String"
              ],
              "description": " Prefix to the id\n\n "
            }
          ],
          "description": "Generate a unique id, optionally prefixed.",
          "short_description": "Generate a unique id, optionally prefixed.",
          "line": 419,
          "aliases": [],
          "children": [],
          "file": "src/util/helpers.js",
          "name": "uniqueId",
          "name_prefix": "Physics.util.",
          "path": "Physics.util.uniqueId",
          "outFile": "helpers.html#Physics.util.uniqueId"
        }
      ],
      "file": "src/intro.js",
      "name": "util",
      "name_prefix": "Physics.",
      "path": "Physics.util",
      "outFile": "intro.html#Physics.util"
    },
    "Physics.aabb": {
      "id": "Physics.aabb",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "minX",
              "types": [
                "Number"
              ],
              "description": " The x coord of the \"top left\" point\n\n "
            },
            {
              "name": "minY",
              "types": [
                "Number"
              ],
              "description": " The y coord of the \"top left\" point\n\n "
            },
            {
              "name": "maxX",
              "types": [
                "Number"
              ],
              "description": " The x coord of the \"bottom right\" point\n\n "
            },
            {
              "name": "maxY",
              "types": [
                "Number"
              ],
              "description": " The y coord of the \"bottom right\" point\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "pt1",
              "types": [
                "Vectorish"
              ],
              "description": " The first corner\n\n "
            },
            {
              "name": "pt2",
              "types": [
                "Vectorish"
              ],
              "description": " The opposite corner\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width of the bounding box\n\n "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height of the bounding box\n\n "
            },
            {
              "name": "pt",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The center point of the bounding box\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "minX",
          "types": [
            "Number"
          ],
          "description": " The x coord of the \"top left\" point\n\n "
        },
        {
          "name": "minY",
          "types": [
            "Number"
          ],
          "description": " The y coord of the \"top left\" point\n\n "
        },
        {
          "name": "maxX",
          "types": [
            "Number"
          ],
          "description": " The x coord of the \"bottom right\" point\n\n "
        },
        {
          "name": "maxY",
          "types": [
            "Number"
          ],
          "description": " The y coord of the \"bottom right\" point\n\n "
        },
        {
          "name": "pt1",
          "types": [
            "Vectorish"
          ],
          "description": " The first corner\n\n "
        },
        {
          "name": "pt2",
          "types": [
            "Vectorish"
          ],
          "description": " The opposite corner\n\n "
        },
        {
          "name": "width",
          "types": [
            "Number"
          ],
          "description": " The width of the bounding box\n\n "
        },
        {
          "name": "height",
          "types": [
            "Number"
          ],
          "description": " The height of the bounding box\n\n "
        },
        {
          "name": "pt",
          "types": [
            "Vectorish"
          ],
          "description": " The center point of the bounding box\n\n "
        }
      ],
      "description": "Create an Axis Aligned Bounding Box.\n\nSignature:\n\n```javascript\n{\n    x: Number, // the x coord of the center point\n    y: Number, // the y coord of the center point\n    hw: Number, // the half-width\n    hh: Number, // the half-height\n}\n```",
      "short_description": "Create an Axis Aligned Bounding Box.\n",
      "line": 30,
      "aliases": [],
      "children": [
        {
          "id": "Physics.aabb.clone",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Object"
                  ],
                  "description": " The aabb to clone\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The clone\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Object"
              ],
              "description": " The aabb to clone\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The clone\n\n "
            }
          ],
          "description": "Clone an aabb.",
          "short_description": "Clone an aabb.",
          "line": 93,
          "aliases": [],
          "children": [],
          "file": "src/math/aabb.js",
          "name": "clone",
          "name_prefix": "Physics.aabb.",
          "path": "Physics.aabb.clone",
          "outFile": "aabb.html#Physics.aabb.clone"
        },
        {
          "id": "Physics.aabb.contains",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "aabb",
                  "types": [
                    "Object"
                  ],
                  "description": " The aabb\n\n "
                },
                {
                  "name": "pt",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Object"
              ],
              "description": " The aabb\n\n "
            },
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
            }
          ],
          "description": "Check if a point is inside an aabb.",
          "short_description": "Check if a point is inside an aabb.",
          "line": 78,
          "aliases": [],
          "children": [],
          "file": "src/math/aabb.js",
          "name": "contains",
          "name_prefix": "Physics.aabb.",
          "path": "Physics.aabb.contains",
          "outFile": "aabb.html#Physics.aabb.contains"
        },
        {
          "id": "Physics.aabb.overlap",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "aabb1",
                  "types": [
                    "Object"
                  ],
                  "description": " The first aabb\n\n "
                },
                {
                  "name": "aabb2",
                  "types": [
                    "Object"
                  ],
                  "description": " The second aabb\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean",
                  "description": " `true` if they overlap, `false` otherwise\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "aabb1",
              "types": [
                "Object"
              ],
              "description": " The first aabb\n\n "
            },
            {
              "name": "aabb2",
              "types": [
                "Object"
              ],
              "description": " The second aabb\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if they overlap, `false` otherwise\n\n "
            }
          ],
          "description": "Check if two AABBs overlap.",
          "short_description": "Check if two AABBs overlap.",
          "line": 136,
          "aliases": [],
          "children": [],
          "file": "src/math/aabb.js",
          "name": "overlap",
          "name_prefix": "Physics.aabb.",
          "path": "Physics.aabb.overlap",
          "outFile": "aabb.html#Physics.aabb.overlap"
        },
        {
          "id": "Physics.aabb.union",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "aabb1",
                  "types": [
                    "Object"
                  ],
                  "description": " The first aabb (returned if modify is `true`)\n\n "
                },
                {
                  "name": "aabb2",
                  "types": [
                    "Object"
                  ],
                  "description": " The second aabb\n\n "
                },
                {
                  "name": "modify",
                  "optional": true
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "aabb1",
              "types": [
                "Object"
              ],
              "description": " The first aabb (returned if modify is `true`)\n\n "
            },
            {
              "name": "aabb2",
              "types": [
                "Object"
              ],
              "description": " The second aabb\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
            }
          ],
          "description": "Get the union of two aabbs.",
          "short_description": "Get the union of two aabbs.",
          "line": 110,
          "aliases": [],
          "children": [],
          "file": "src/math/aabb.js",
          "name": "union",
          "name_prefix": "Physics.aabb.",
          "path": "Physics.aabb.union",
          "outFile": "aabb.html#Physics.aabb.union"
        }
      ],
      "file": "src/math/aabb.js",
      "name": "aabb",
      "name_prefix": "Physics.",
      "path": "Physics.aabb",
      "outFile": "aabb.html#Physics.aabb"
    },
    "Physics.aabb.contains": {
      "id": "Physics.aabb.contains",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Object"
              ],
              "description": " The aabb\n\n "
            },
            {
              "name": "pt",
              "types": [
                "Vectorish"
              ],
              "description": " The point\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "aabb",
          "types": [
            "Object"
          ],
          "description": " The aabb\n\n "
        },
        {
          "name": "pt",
          "types": [
            "Vectorish"
          ],
          "description": " The point\n\n "
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
        }
      ],
      "description": "Check if a point is inside an aabb.",
      "short_description": "Check if a point is inside an aabb.",
      "line": 78,
      "aliases": [],
      "children": [],
      "file": "src/math/aabb.js",
      "name": "contains",
      "name_prefix": "Physics.aabb.",
      "path": "Physics.aabb.contains",
      "outFile": "aabb.html#Physics.aabb.contains"
    },
    "Physics.aabb.clone": {
      "id": "Physics.aabb.clone",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "aabb",
              "types": [
                "Object"
              ],
              "description": " The aabb to clone\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The clone\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "aabb",
          "types": [
            "Object"
          ],
          "description": " The aabb to clone\n\n "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The clone\n\n "
        }
      ],
      "description": "Clone an aabb.",
      "short_description": "Clone an aabb.",
      "line": 93,
      "aliases": [],
      "children": [],
      "file": "src/math/aabb.js",
      "name": "clone",
      "name_prefix": "Physics.aabb.",
      "path": "Physics.aabb.clone",
      "outFile": "aabb.html#Physics.aabb.clone"
    },
    "Physics.aabb.union": {
      "id": "Physics.aabb.union",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "aabb1",
              "types": [
                "Object"
              ],
              "description": " The first aabb (returned if modify is `true`)\n\n "
            },
            {
              "name": "aabb2",
              "types": [
                "Object"
              ],
              "description": " The second aabb\n\n "
            },
            {
              "name": "modify",
              "optional": true
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "aabb1",
          "types": [
            "Object"
          ],
          "description": " The first aabb (returned if modify is `true`)\n\n "
        },
        {
          "name": "aabb2",
          "types": [
            "Object"
          ],
          "description": " The second aabb\n\n "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
        }
      ],
      "description": "Get the union of two aabbs.",
      "short_description": "Get the union of two aabbs.",
      "line": 110,
      "aliases": [],
      "children": [],
      "file": "src/math/aabb.js",
      "name": "union",
      "name_prefix": "Physics.aabb.",
      "path": "Physics.aabb.union",
      "outFile": "aabb.html#Physics.aabb.union"
    },
    "Physics.aabb.overlap": {
      "id": "Physics.aabb.overlap",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "aabb1",
              "types": [
                "Object"
              ],
              "description": " The first aabb\n\n "
            },
            {
              "name": "aabb2",
              "types": [
                "Object"
              ],
              "description": " The second aabb\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if they overlap, `false` otherwise\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "aabb1",
          "types": [
            "Object"
          ],
          "description": " The first aabb\n\n "
        },
        {
          "name": "aabb2",
          "types": [
            "Object"
          ],
          "description": " The second aabb\n\n "
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if they overlap, `false` otherwise\n\n "
        }
      ],
      "description": "Check if two AABBs overlap.",
      "short_description": "Check if two AABBs overlap.",
      "line": 136,
      "aliases": [],
      "children": [],
      "file": "src/math/aabb.js",
      "name": "overlap",
      "name_prefix": "Physics.aabb.",
      "path": "Physics.aabb.overlap",
      "outFile": "aabb.html#Physics.aabb.overlap"
    },
    "getClosestPoints": {
      "id": "getClosestPoints",
      "type": "method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "simplex",
              "types": [
                "Array"
              ],
              "description": " The simplex\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "simplex",
          "types": [
            "Array"
          ],
          "description": " The simplex\n\n "
        }
      ],
      "hide": true,
      "description": "Figure out the closest points on the original objects\nfrom the last two entries of the simplex",
      "short_description": "Figure out the closest points on the original objects\nfrom the last two entries of the simplex",
      "line": 43,
      "aliases": [],
      "children": [],
      "file": "src/math/gjk.js",
      "name": "getClosestPoints",
      "path": "getClosestPoints",
      "outFile": "gjk.html#getClosestPoints"
    },
    "Physics.gjk": {
      "id": "Physics.gjk",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "support",
              "arguments": [
                {
                  "name": "axis"
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
            },
            {
              "name": "seed",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
            },
            {
              "name": "checkOverlapOnly",
              "optional": true,
              "types": [
                "Boolean"
              ],
              "description": " only check whether there is an overlap, don't calculate the depth\n\n "
            },
            {
              "name": "debugFn",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " For debugging. Called at every iteration with the current simplex.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "support",
          "types": [
            "Function"
          ],
          "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
        },
        {
          "name": "axis",
          "types": [
            "Physics.vector"
          ],
          "description": " The axis to search\n\n "
        },
        {
          "name": "seed",
          "types": [
            "Physics.vector"
          ],
          "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
        },
        {
          "name": "checkOverlapOnly",
          "types": [
            "Boolean"
          ],
          "description": " only check whether there is an overlap, don't calculate the depth\n\n "
        },
        {
          "name": "debugFn",
          "types": [
            "Function"
          ],
          "description": " For debugging. Called at every iteration with the current simplex.\n\n "
        }
      ],
      "description": "Implementation agnostic GJK function.\n\nGilbert–Johnson–Keerthi object collison algorithm\nFor general information about GJK see:\n- [www.codezealot.org/archives/88](http://www.codezealot.org/archives/88)\n- [mollyrocket.com/849](http://mollyrocket.com/849)\n\nThe algorithm information returned:\n```javascript\n{\n    overlap: Boolean,\n    simplex: [] // array containing simplex points as simple x/y objects\n}\n```",
      "short_description": "Implementation agnostic GJK function.\n",
      "line": 134,
      "aliases": [],
      "children": [],
      "file": "src/math/gjk.js",
      "name": "gjk",
      "name_prefix": "Physics.",
      "path": "Physics.gjk",
      "outFile": "gjk.html#Physics.gjk"
    },
    "Physics.statistics.pushRunningAvg": {
      "id": "Physics.statistics.pushRunningAvg",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Number"
              ],
              "description": " is value to push\n\n     "
            },
            {
              "name": "k",
              "types": [
                "Number"
              ],
              "description": " is num elements\n\n     "
            },
            {
              "name": "m",
              "types": [
                "Number"
              ],
              "description": " is current mean\n\n     "
            },
            {
              "name": "s",
              "types": [
                "Number"
              ],
              "description": " is current s value\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " Returns a 2 element array containing the next mean, and s value\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Number"
          ],
          "description": " is value to push\n\n     "
        },
        {
          "name": "k",
          "types": [
            "Number"
          ],
          "description": " is num elements\n\n     "
        },
        {
          "name": "m",
          "types": [
            "Number"
          ],
          "description": " is current mean\n\n     "
        },
        {
          "name": "s",
          "types": [
            "Number"
          ],
          "description": " is current s value\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " Returns a 2 element array containing the next mean, and s value\n\n     "
        }
      ],
      "description": "Push a value to a running average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n\nNote: variance can be calculated from the \"s\" value by multiplying it by `1/(k-1)`",
      "short_description": "Push a value to a running average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n",
      "line": 17,
      "aliases": [],
      "children": [],
      "file": "src/math/statistics.js",
      "name": "pushRunningAvg",
      "name_prefix": "Physics.statistics.",
      "path": "Physics.statistics.pushRunningAvg",
      "outFile": "statistics.html#Physics.statistics.pushRunningAvg"
    },
    "Physics.statistics.pushRunningVectorAvg": {
      "id": "Physics.statistics.pushRunningVectorAvg",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " is vector to push\n\n    "
            },
            {
              "name": "k",
              "types": [
                "Number"
              ],
              "description": " is num elements\n\n    "
            },
            {
              "name": "m",
              "types": [
                "Physics.vector"
              ],
              "description": " is current mean\n\n    "
            },
            {
              "name": "s",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " is current s value\n\n    "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " is vector to push\n\n    "
        },
        {
          "name": "k",
          "types": [
            "Number"
          ],
          "description": " is num elements\n\n    "
        },
        {
          "name": "m",
          "types": [
            "Physics.vector"
          ],
          "description": " is current mean\n\n    "
        },
        {
          "name": "s",
          "types": [
            "Physics.vector"
          ],
          "description": " is current s value\n\n    "
        }
      ],
      "description": "Push a vector to a running vector average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n\nCalculations are done in place. The `m` and `s` parameters are altered.\n\nNote: variance can be calculated from the \"s\" vector by multiplying it by `1/(k-1)`\n\nIf s value is ommitted it won't be used.",
      "short_description": "Push a vector to a running vector average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n",
      "line": 44,
      "aliases": [],
      "children": [],
      "file": "src/math/statistics.js",
      "name": "pushRunningVectorAvg",
      "name_prefix": "Physics.statistics.",
      "path": "Physics.statistics.pushRunningVectorAvg",
      "outFile": "statistics.html#Physics.statistics.pushRunningVectorAvg"
    },
    "Physics.transform": {
      "id": "Physics.transform",
      "type": "class",
      "description": "Vector Transformations class for rotating and translating vectors",
      "short_description": "Vector Transformations class for rotating and translating vectors",
      "line": 8,
      "aliases": [],
      "children": [
        {
          "id": "Physics.transform#clone",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "transform",
                  "optional": true,
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " Transform to copy\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this",
                  "description": " For chaining\n\n "
                },
                {
                  "type": "Physics.transform",
                  "description": " New copy of `this` if none is specified as an argument\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "transform",
              "types": [
                "Physics.transform"
              ],
              "description": " Transform to copy\n\n "
            }
          ],
          "returns": [
            {
              "type": "this",
              "description": " For chaining\n\n "
            },
            {
              "type": "Physics.transform",
              "description": " New copy of `this` if none is specified as an argument\n\n "
            }
          ],
          "description": "Clone another transform. Or clone self into new transform.",
          "short_description": "Clone another transform. Or clone self into new transform.",
          "line": 82,
          "aliases": [],
          "children": [],
          "file": "src/math/transform.js",
          "name": "clone",
          "name_prefix": "Physics.transform#",
          "path": "Physics.transform.prototype.clone",
          "outFile": "transform.html#Physics.transform.prototype.clone"
        },
        {
          "id": "Physics.transform#setRotation",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "angle",
                  "types": [
                    "Number"
                  ],
                  "description": " Angle (radians) to use for rotation\n\n "
                },
                {
                  "name": "origin",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Origin of the rotation\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " Angle (radians) to use for rotation\n\n "
            },
            {
              "name": "origin",
              "types": [
                "Vectorish"
              ],
              "description": " Origin of the rotation\n\n "
            }
          ],
          "description": "Set the rotation portion of the transform",
          "short_description": "Set the rotation portion of the transform",
          "line": 60,
          "aliases": [],
          "children": [],
          "file": "src/math/transform.js",
          "name": "setRotation",
          "name_prefix": "Physics.transform#",
          "path": "Physics.transform.prototype.setRotation",
          "outFile": "transform.html#Physics.transform.prototype.setRotation"
        },
        {
          "id": "Physics.transform#setTranslation",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "vect",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The translation vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "vect",
              "types": [
                "Vectorish"
              ],
              "description": " The translation vector\n\n "
            }
          ],
          "description": "Set the translation portion of the transform.",
          "short_description": "Set the translation portion of the transform.",
          "line": 47,
          "aliases": [],
          "children": [],
          "file": "src/math/transform.js",
          "name": "setTranslation",
          "name_prefix": "Physics.transform#",
          "path": "Physics.transform.prototype.setTranslation",
          "outFile": "transform.html#Physics.transform.prototype.setTranslation"
        },
        {
          "id": "new Physics.transform",
          "type": "constructor",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "vect",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Translation vector\n\n "
                },
                {
                  "name": "angle",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " Angle (radians) to use for rotation\n\n "
                },
                {
                  "name": "origin",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Origin of the rotation\n\n "
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "transform",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " Transform to copy\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "vect",
              "types": [
                "Vectorish"
              ],
              "description": " Translation vector\n\n "
            },
            {
              "name": "transform",
              "types": [
                "Physics.transform"
              ],
              "description": " Transform to copy\n\n "
            },
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " Angle (radians) to use for rotation\n\n "
            },
            {
              "name": "origin",
              "types": [
                "Vectorish"
              ],
              "description": " Origin of the rotation\n\n "
            }
          ],
          "description": "Transform Constructor / Factory",
          "short_description": "Transform Constructor / Factory",
          "line": 19,
          "aliases": [],
          "children": [],
          "file": "src/math/transform.js",
          "name": "new",
          "name_prefix": "Physics.transform.",
          "path": "Physics.transform.new",
          "outFile": "transform.html#Physics.transform.new"
        }
      ],
      "file": "src/math/transform.js",
      "subclasses": [],
      "name": "transform",
      "name_prefix": "Physics.",
      "path": "Physics.transform",
      "outFile": "transform.html"
    },
    "Physics.transform.new": {
      "id": "new Physics.transform",
      "type": "constructor",
      "signatures": [
        {
          "arguments": [
            {
              "name": "vect",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " Translation vector\n\n "
            },
            {
              "name": "angle",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " Angle (radians) to use for rotation\n\n "
            },
            {
              "name": "origin",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " Origin of the rotation\n\n "
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "transform",
              "types": [
                "Physics.transform"
              ],
              "description": " Transform to copy\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "vect",
          "types": [
            "Vectorish"
          ],
          "description": " Translation vector\n\n "
        },
        {
          "name": "transform",
          "types": [
            "Physics.transform"
          ],
          "description": " Transform to copy\n\n "
        },
        {
          "name": "angle",
          "types": [
            "Number"
          ],
          "description": " Angle (radians) to use for rotation\n\n "
        },
        {
          "name": "origin",
          "types": [
            "Vectorish"
          ],
          "description": " Origin of the rotation\n\n "
        }
      ],
      "description": "Transform Constructor / Factory",
      "short_description": "Transform Constructor / Factory",
      "line": 19,
      "aliases": [],
      "children": [],
      "file": "src/math/transform.js",
      "name": "new",
      "name_prefix": "Physics.transform.",
      "path": "Physics.transform.new",
      "outFile": "transform.html#Physics.transform.new"
    },
    "Physics.transform#setTranslation": {
      "id": "Physics.transform#setTranslation",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "vect",
              "types": [
                "Vectorish"
              ],
              "description": " The translation vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "vect",
          "types": [
            "Vectorish"
          ],
          "description": " The translation vector\n\n "
        }
      ],
      "description": "Set the translation portion of the transform.",
      "short_description": "Set the translation portion of the transform.",
      "line": 47,
      "aliases": [],
      "children": [],
      "file": "src/math/transform.js",
      "name": "setTranslation",
      "name_prefix": "Physics.transform#",
      "path": "Physics.transform.prototype.setTranslation",
      "outFile": "transform.html#Physics.transform.prototype.setTranslation"
    },
    "Physics.transform#setRotation": {
      "id": "Physics.transform#setRotation",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "angle",
              "types": [
                "Number"
              ],
              "description": " Angle (radians) to use for rotation\n\n "
            },
            {
              "name": "origin",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " Origin of the rotation\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "angle",
          "types": [
            "Number"
          ],
          "description": " Angle (radians) to use for rotation\n\n "
        },
        {
          "name": "origin",
          "types": [
            "Vectorish"
          ],
          "description": " Origin of the rotation\n\n "
        }
      ],
      "description": "Set the rotation portion of the transform",
      "short_description": "Set the rotation portion of the transform",
      "line": 60,
      "aliases": [],
      "children": [],
      "file": "src/math/transform.js",
      "name": "setRotation",
      "name_prefix": "Physics.transform#",
      "path": "Physics.transform.prototype.setRotation",
      "outFile": "transform.html#Physics.transform.prototype.setRotation"
    },
    "Physics.transform#clone": {
      "id": "Physics.transform#clone",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "transform",
              "optional": true,
              "types": [
                "Physics.transform"
              ],
              "description": " Transform to copy\n\n "
            }
          ],
          "returns": [
            {
              "type": "this",
              "description": " For chaining\n\n "
            },
            {
              "type": "Physics.transform",
              "description": " New copy of `this` if none is specified as an argument\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "transform",
          "types": [
            "Physics.transform"
          ],
          "description": " Transform to copy\n\n "
        }
      ],
      "returns": [
        {
          "type": "this",
          "description": " For chaining\n\n "
        },
        {
          "type": "Physics.transform",
          "description": " New copy of `this` if none is specified as an argument\n\n "
        }
      ],
      "description": "Clone another transform. Or clone self into new transform.",
      "short_description": "Clone another transform. Or clone self into new transform.",
      "line": 82,
      "aliases": [],
      "children": [],
      "file": "src/math/transform.js",
      "name": "clone",
      "name_prefix": "Physics.transform#",
      "path": "Physics.transform.prototype.clone",
      "outFile": "transform.html#Physics.transform.prototype.clone"
    },
    "Physics.vector": {
      "id": "Physics.vector",
      "type": "class",
      "description": "The vector class and factory function.\n\nCall `Physics.vector` with the same arguments as\n[[new Physics.vector]] to create an instance.\n\nThe vector methods mostly modify the vector instance.\nThis makes computations faster because creating vectors\nis avoided.\n\nCreating vectors is generally an expensive operation\nso try to avoid doing this in the simulation loop.\nInstead you can use [[Physics.scratchpad]] to get\ntemporary vectors for use in performance critical\ncode.\n\n_Note_: The coordinate system is left-handed, meaning that\nthe clockwise angular direction is positive. This has implications\nfor the cross-product rule.",
      "short_description": "The vector class and factory function.\n",
      "line": 38,
      "aliases": [],
      "children": [
        {
          "id": "Physics.vector#_",
          "type": "namespace",
          "internal": true,
          "description": "Private storage array for data.\n\nDo not access this directly. Private. Keep out.",
          "short_description": "Private storage array for data.\n",
          "line": 80,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "_",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype._",
          "outFile": "vector.html#Physics.vector.prototype._"
        },
        {
          "id": "Physics.vector#add",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to add to the x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to add to the y coordinate\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " amount to add to the x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " amount to add to the y coordinate\n\n "
            }
          ],
          "description": "Add scalars [[Physics.vector]] to the coordinates.",
          "short_description": "Add scalars [[Physics.vector]] to the coordinates.",
          "line": 198,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "add",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.add",
          "outFile": "vector.html#Physics.vector.prototype.add"
        },
        {
          "id": "Physics.vector#angle",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "optional": true,
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number",
                  "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
            }
          ],
          "description": "Compute the angle between `this` and vector `v` or this and x axis.",
          "short_description": "Compute the angle between `this` and vector `v` or this and x axis.",
          "line": 297,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "angle",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.angle",
          "outFile": "vector.html#Physics.vector.prototype.angle"
        },
        {
          "id": "Physics.vector#angle2",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "left",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position on the left\n\n "
                },
                {
                  "name": "right",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The position on the right\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "left",
              "types": [
                "Physics.vector"
              ],
              "description": " The position on the left\n\n "
            },
            {
              "name": "right",
              "types": [
                "Physics.vector"
              ],
              "description": " The position on the right\n\n "
            }
          ],
          "description": "Compute the angle created between three points; left -> this -> right.",
          "short_description": "Compute the angle created between three points; left -> this -> right.",
          "line": 336,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "angle2",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.angle2",
          "outFile": "vector.html#Physics.vector.prototype.angle2"
        },
        {
          "id": "Physics.vector#clamp",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "minV",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The minimum vector\n\n "
                },
                {
                  "name": "maxV",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The maximum vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "minV",
              "types": [
                "Vectorish"
              ],
              "description": " The minimum vector\n\n "
            },
            {
              "name": "maxV",
              "types": [
                "Vectorish"
              ],
              "description": " The maximum vector\n\n "
            }
          ],
          "description": "Constrain vector components to minima and maxima.\n\nThe vector analog of [scalar clamping](http://en.wikipedia.org/wiki/Clamping_(graphics)).",
          "short_description": "Constrain vector components to minima and maxima.\n",
          "line": 733,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "clamp",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.clamp",
          "outFile": "vector.html#Physics.vector.prototype.clamp"
        },
        {
          "id": "Physics.vector#clone",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The vector-like object to clone\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this",
                  "description": " If `v` is specified as an argument\n\n "
                },
                {
                  "type": "Physics.vector",
                  "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Vectorish"
              ],
              "description": " The vector-like object to clone\n\n "
            }
          ],
          "returns": [
            {
              "type": "this",
              "description": " If `v` is specified as an argument\n\n "
            },
            {
              "type": "Physics.vector",
              "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
            }
          ],
          "description": "Create a clone of this vector, or clone another vector into this instance.\n\nThis is especially useful in vector algorithms\nthat use temporary vectors (which most should).\nYou can create temporary vectors and then do things like...\n```\ntemp.clone( otherVector );\n// compute things with temp...\n// then save the result\nresult.clone( tmp );\n```",
          "short_description": "Create a clone of this vector, or clone another vector into this instance.\n",
          "line": 632,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "clone",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.clone",
          "outFile": "vector.html#Physics.vector.prototype.clone"
        },
        {
          "id": "Physics.vector#cross",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the (left-handed) cross product of this vector with `v`.",
          "short_description": "Compute the (left-handed) cross product of this vector with `v`.",
          "line": 261,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "cross",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.cross",
          "outFile": "vector.html#Physics.vector.prototype.cross"
        },
        {
          "id": "Physics.vector#dist",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the distance from this vector to another vector `v`.",
          "short_description": "Compute the distance from this vector to another vector `v`.",
          "line": 394,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "dist",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.dist",
          "outFile": "vector.html#Physics.vector.prototype.dist"
        },
        {
          "id": "Physics.vector#distSq",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the distance squared from this vector to another vector `v`.",
          "short_description": "Compute the distance squared from this vector to another vector `v`.",
          "line": 409,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "distSq",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.distSq",
          "outFile": "vector.html#Physics.vector.prototype.distSq"
        },
        {
          "id": "Physics.vector#dot",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the dot product of this vector with `v`.",
          "short_description": "Compute the dot product of this vector with `v`.",
          "line": 250,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "dot",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.dot",
          "outFile": "vector.html#Physics.vector.prototype.dot"
        },
        {
          "id": "Physics.vector#equals",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Determine if this vector equals another.",
          "short_description": "Determine if this vector equals another.",
          "line": 758,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "equals",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.equals",
          "outFile": "vector.html#Physics.vector.prototype.equals"
        },
        {
          "id": "Physics.vector#get",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "idx",
                  "types": [
                    "Number"
                  ],
                  "description": " The coordinate index (0 or 1)\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "idx",
              "types": [
                "Number"
              ],
              "description": " The coordinate index (0 or 1)\n\n "
            }
          ],
          "deprecated": {
            "since": "0.6.0",
            "off": "1.0.0"
          },
          "description": "Get the x or y component by index.",
          "short_description": "Get the x or y component by index.",
          "line": 156,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "get",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.get",
          "outFile": "vector.html#Physics.vector.prototype.get"
        },
        {
          "id": "Physics.vector#mult",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "m",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to multiply this vector by\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "m",
              "types": [
                "Number"
              ],
              "description": " amount to multiply this vector by\n\n "
            }
          ],
          "description": "Multiply this by a scalar quantity.\n\nSame as scaling the vector by an amount `m`.",
          "short_description": "Multiply this by a scalar quantity.\n",
          "line": 231,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "mult",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.mult",
          "outFile": "vector.html#Physics.vector.prototype.mult"
        },
        {
          "id": "Physics.vector#negate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Flip this vector in the opposite direction.",
          "short_description": "Flip this vector in the opposite direction.",
          "line": 711,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "negate",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.negate",
          "outFile": "vector.html#Physics.vector.prototype.negate"
        },
        {
          "id": "Physics.vector#norm",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "description": "Compute the norm (length) of this vector.",
          "short_description": "Compute the norm (length) of this vector.",
          "line": 361,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "norm",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.norm",
          "outFile": "vector.html#Physics.vector.prototype.norm"
        },
        {
          "id": "Physics.vector#normalize",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Normalise this vector, making it a unit vector.",
          "short_description": "Normalise this vector, making it a unit vector.",
          "line": 454,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "normalize",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.normalize",
          "outFile": "vector.html#Physics.vector.prototype.normalize"
        },
        {
          "id": "Physics.vector#normSq",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "description": "Compute the norm (length) squared of this vector.",
          "short_description": "Compute the norm (length) squared of this vector.",
          "line": 377,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "normSq",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.normSq",
          "outFile": "vector.html#Physics.vector.prototype.normSq"
        },
        {
          "id": "Physics.vector#perp",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "ccw",
                  "optional": true,
                  "types": [
                    "Boolean"
                  ],
                  "description": " flag to indicate that we should rotate counterclockwise\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "ccw",
              "types": [
                "Boolean"
              ],
              "description": " flag to indicate that we should rotate counterclockwise\n\n "
            }
          ],
          "description": "Change this vector into a vector that will be perpendicular.\n\nIn other words, rotate by (+-) 90 degrees.",
          "short_description": "Change this vector into a vector that will be perpendicular.\n",
          "line": 426,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "perp",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.perp",
          "outFile": "vector.html#Physics.vector.prototype.perp"
        },
        {
          "id": "Physics.vector#proj",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Number"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
          "short_description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
          "line": 272,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "proj",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.proj",
          "outFile": "vector.html#Physics.vector.prototype.proj"
        },
        {
          "id": "Physics.vector#rotate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the rotational part of\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "ang",
                  "types": [
                    "Number"
                  ],
                  "description": " The angle (in radians), to rotate by\n\n "
                },
                {
                  "name": "o",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The point of origin of the rotation\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the rotational part of\n\n "
            },
            {
              "name": "ang",
              "types": [
                "Number"
              ],
              "description": " The angle (in radians), to rotate by\n\n "
            },
            {
              "name": "o",
              "types": [
                "Vectorish"
              ],
              "description": " The point of origin of the rotation\n\n "
            }
          ],
          "description": "Rotate this vector.\n\nAn angle and rotation origin can be specified,\nor a transform can be specified and only the rotation\nportion of that transform will be applied",
          "short_description": "Rotate this vector.\n",
          "line": 535,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "rotate",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.rotate",
          "outFile": "vector.html#Physics.vector.prototype.rotate"
        },
        {
          "id": "Physics.vector#rotateInv",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse rotational part of\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse rotational part of\n\n "
            }
          ],
          "description": "Apply the inverse rotation of a transform.\n\nOnly the inverse rotation portion of\nthat transform will be applied.",
          "short_description": "Apply the inverse rotation of a transform.\n",
          "line": 577,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "rotateInv",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.rotateInv",
          "outFile": "vector.html#Physics.vector.prototype.rotateInv"
        },
        {
          "id": "Physics.vector#set",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " y coordinate\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " y coordinate\n\n "
            }
          ],
          "description": "Sets the x and y components of this vector.",
          "short_description": "Sets the x and y components of this vector.",
          "line": 141,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "set",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.set",
          "outFile": "vector.html#Physics.vector.prototype.set"
        },
        {
          "id": "Physics.vector#sub",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to subtract from the x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " amount to subtract from the y coordinate\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " amount to subtract from the x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " amount to subtract from the y coordinate\n\n "
            }
          ],
          "description": "Subtract scalars [[Physics.vector]] from the coordinates.",
          "short_description": "Subtract scalars [[Physics.vector]] from the coordinates.",
          "line": 214,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "sub",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.sub",
          "outFile": "vector.html#Physics.vector.prototype.sub"
        },
        {
          "id": "Physics.vector#swap",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Swap values with other vector.",
          "short_description": "Swap values with other vector.",
          "line": 665,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "swap",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.swap",
          "outFile": "vector.html#Physics.vector.prototype.swap"
        },
        {
          "id": "Physics.vector#toString",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "String"
                }
              ]
            }
          ],
          "description": "Get a formatted string of this vector's coordinates.",
          "short_description": "Get a formatted string of this vector's coordinates.",
          "line": 746,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "toString",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.toString",
          "outFile": "vector.html#Physics.vector.prototype.toString"
        },
        {
          "id": "Physics.vector#transform",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply\n\n "
            }
          ],
          "description": "Apply a [[Physics.transform]] to this vector.",
          "short_description": "Apply a [[Physics.transform]] to this vector.",
          "line": 480,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "transform",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.transform",
          "outFile": "vector.html#Physics.vector.prototype.transform"
        },
        {
          "id": "Physics.vector#transformInv",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse of\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse of\n\n "
            }
          ],
          "description": "Apply an inverse [[Physics.transform]] to this vector.",
          "short_description": "Apply an inverse [[Physics.transform]] to this vector.",
          "line": 504,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "transformInv",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.transformInv",
          "outFile": "vector.html#Physics.vector.prototype.transformInv"
        },
        {
          "id": "Physics.vector#translate",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the translational part of\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the translational part of\n\n "
            }
          ],
          "description": "Apply the translation of a transform.\n\nOnly the translation portion of\nthat transform will be applied.",
          "short_description": "Apply the translation of a transform.\n",
          "line": 594,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "translate",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.translate",
          "outFile": "vector.html#Physics.vector.prototype.translate"
        },
        {
          "id": "Physics.vector#translateInv",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "t",
                  "types": [
                    "Physics.transform"
                  ],
                  "description": " The transformation to apply the inverse translational part of\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse translational part of\n\n "
            }
          ],
          "description": "Apply the inverse translation of a transform.\n\nOnly the inverse translation portion of\nthat transform will be applied.",
          "short_description": "Apply the inverse translation of a transform.\n",
          "line": 608,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "translateInv",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.translateInv",
          "outFile": "vector.html#Physics.vector.prototype.translateInv"
        },
        {
          "id": "Physics.vector#vadd",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " vector to add\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " vector to add\n\n "
            }
          ],
          "description": "Add a [[Physics.vector]] to `this`.",
          "short_description": "Add a [[Physics.vector]] to `this`.",
          "line": 167,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "vadd",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.vadd",
          "outFile": "vector.html#Physics.vector.prototype.vadd"
        },
        {
          "id": "Physics.vector#values",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "description": "Get the coordinate values as an object literal.",
          "short_description": "Get the coordinate values as an object literal.",
          "line": 682,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "values",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.values",
          "outFile": "vector.html#Physics.vector.prototype.values"
        },
        {
          "id": "Physics.vector#vproj",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " The other vector\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
          "short_description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
          "line": 284,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "vproj",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.vproj",
          "outFile": "vector.html#Physics.vector.prototype.vproj"
        },
        {
          "id": "Physics.vector#vsub",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "v",
                  "types": [
                    "Physics.vector"
                  ],
                  "description": " vector to subtract\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " vector to subtract\n\n "
            }
          ],
          "description": "Subtract a [[Physics.vector]] from `this`.",
          "short_description": "Subtract a [[Physics.vector]] from `this`.",
          "line": 182,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "vsub",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.vsub",
          "outFile": "vector.html#Physics.vector.prototype.vsub"
        },
        {
          "id": "Physics.vector#x",
          "type": "namespace",
          "description": "Getter/setter property for the x coordinate.",
          "short_description": "Getter/setter property for the x coordinate.",
          "line": 103,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "x",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.x",
          "outFile": "vector.html#Physics.vector.prototype.x"
        },
        {
          "id": "Physics.vector#y",
          "type": "namespace",
          "description": "Getter/setter property for the y coordinate.",
          "short_description": "Getter/setter property for the y coordinate.",
          "line": 118,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "y",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.y",
          "outFile": "vector.html#Physics.vector.prototype.y"
        },
        {
          "id": "Physics.vector#zero",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Set the coordinates of this vector to zero.",
          "short_description": "Set the coordinates of this vector to zero.",
          "line": 696,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "zero",
          "name_prefix": "Physics.vector#",
          "path": "Physics.vector.prototype.zero",
          "outFile": "vector.html#Physics.vector.prototype.zero"
        },
        {
          "id": "Physics.vector.axis",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "description": "Read-only axis vectors for general reference.\n\nExample:\n\n```javascript\nPhysics.vector.axis[0]; // The x axis unit vector\nPhysics.vector.axis[1]; // The y axis unit vector\n```",
          "short_description": "Read-only axis vectors for general reference.\n",
          "line": 777,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "axis",
          "name_prefix": "Physics.vector.",
          "path": "Physics.vector.axis",
          "outFile": "vector.html#Physics.vector.axis"
        },
        {
          "id": "new Physics.vector",
          "type": "constructor",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coordinate\n\n "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coordinate\n\n "
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "vect",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " A vector-like object to clone\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coordinate\n\n "
            },
            {
              "name": "vect",
              "types": [
                "Vectorish"
              ],
              "description": " A vector-like object to clone\n\n "
            }
          ],
          "description": "Vector Constructor.",
          "short_description": "Vector Constructor.",
          "line": 59,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "new",
          "name_prefix": "Physics.vector.",
          "path": "Physics.vector.new",
          "outFile": "vector.html#Physics.vector.new"
        },
        {
          "id": "Physics.vector.zero",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "zeroVector"
                }
              ]
            }
          ],
          "description": "Read-only zero vector for reference",
          "short_description": "Read-only zero vector for reference",
          "line": 787,
          "aliases": [],
          "children": [],
          "file": "src/math/vector.js",
          "name": "zero",
          "name_prefix": "Physics.vector.",
          "path": "Physics.vector.zero",
          "outFile": "vector.html#Physics.vector.zero"
        }
      ],
      "file": "src/math/vector.js",
      "subclasses": [],
      "name": "vector",
      "name_prefix": "Physics.",
      "path": "Physics.vector",
      "outFile": "vector.html"
    },
    "Vectorish": {
      "id": "Vectorish",
      "type": "class",
      "description": "Any object with `.x` and `.y` properties.\n\nA `Vectorish` isn't really a class. In this documentation, when\nan argument is specified as a `Vectorish` it means either a true\n[[Physics.vector]] instance, or an object literal with `.x` and `.y`\nproperties.",
      "short_description": "Any object with `.x` and `.y` properties.\n",
      "line": 49,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "subclasses": [],
      "name": "Vectorish",
      "path": "Vectorish",
      "outFile": "vector.html"
    },
    "Physics.vector.new": {
      "id": "new Physics.vector",
      "type": "constructor",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coordinate\n\n "
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "vect",
              "types": [
                "Vectorish"
              ],
              "description": " A vector-like object to clone\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " The x coordinate\n\n "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " The y coordinate\n\n "
        },
        {
          "name": "vect",
          "types": [
            "Vectorish"
          ],
          "description": " A vector-like object to clone\n\n "
        }
      ],
      "description": "Vector Constructor.",
      "short_description": "Vector Constructor.",
      "line": 59,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "new",
      "name_prefix": "Physics.vector.",
      "path": "Physics.vector.new",
      "outFile": "vector.html#Physics.vector.new"
    },
    "Physics.vector#_": {
      "id": "Physics.vector#_",
      "type": "namespace",
      "internal": true,
      "description": "Private storage array for data.\n\nDo not access this directly. Private. Keep out.",
      "short_description": "Private storage array for data.\n",
      "line": 80,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "_",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype._",
      "outFile": "vector.html#Physics.vector.prototype._"
    },
    "Physics.vector#x": {
      "id": "Physics.vector#x",
      "type": "namespace",
      "description": "Getter/setter property for the x coordinate.",
      "short_description": "Getter/setter property for the x coordinate.",
      "line": 103,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "x",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.x",
      "outFile": "vector.html#Physics.vector.prototype.x"
    },
    "Physics.vector#y": {
      "id": "Physics.vector#y",
      "type": "namespace",
      "description": "Getter/setter property for the y coordinate.",
      "short_description": "Getter/setter property for the y coordinate.",
      "line": 118,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "y",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.y",
      "outFile": "vector.html#Physics.vector.prototype.y"
    },
    "Physics.vector#set": {
      "id": "Physics.vector#set",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " y coordinate\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " x coordinate\n\n "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " y coordinate\n\n "
        }
      ],
      "description": "Sets the x and y components of this vector.",
      "short_description": "Sets the x and y components of this vector.",
      "line": 141,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "set",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.set",
      "outFile": "vector.html#Physics.vector.prototype.set"
    },
    "Physics.vector#get": {
      "id": "Physics.vector#get",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "idx",
              "types": [
                "Number"
              ],
              "description": " The coordinate index (0 or 1)\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "idx",
          "types": [
            "Number"
          ],
          "description": " The coordinate index (0 or 1)\n\n "
        }
      ],
      "deprecated": {
        "since": "0.6.0",
        "off": "1.0.0"
      },
      "description": "Get the x or y component by index.",
      "short_description": "Get the x or y component by index.",
      "line": 156,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "get",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.get",
      "outFile": "vector.html#Physics.vector.prototype.get"
    },
    "Physics.vector#vadd": {
      "id": "Physics.vector#vadd",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " vector to add\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " vector to add\n\n "
        }
      ],
      "description": "Add a [[Physics.vector]] to `this`.",
      "short_description": "Add a [[Physics.vector]] to `this`.",
      "line": 167,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "vadd",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.vadd",
      "outFile": "vector.html#Physics.vector.prototype.vadd"
    },
    "Physics.vector#vsub": {
      "id": "Physics.vector#vsub",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " vector to subtract\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " vector to subtract\n\n "
        }
      ],
      "description": "Subtract a [[Physics.vector]] from `this`.",
      "short_description": "Subtract a [[Physics.vector]] from `this`.",
      "line": 182,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "vsub",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.vsub",
      "outFile": "vector.html#Physics.vector.prototype.vsub"
    },
    "Physics.vector#add": {
      "id": "Physics.vector#add",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " amount to add to the x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " amount to add to the y coordinate\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " amount to add to the x coordinate\n\n "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " amount to add to the y coordinate\n\n "
        }
      ],
      "description": "Add scalars [[Physics.vector]] to the coordinates.",
      "short_description": "Add scalars [[Physics.vector]] to the coordinates.",
      "line": 198,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "add",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.add",
      "outFile": "vector.html#Physics.vector.prototype.add"
    },
    "Physics.vector#sub": {
      "id": "Physics.vector#sub",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " amount to subtract from the x coordinate\n\n "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " amount to subtract from the y coordinate\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " amount to subtract from the x coordinate\n\n "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " amount to subtract from the y coordinate\n\n "
        }
      ],
      "description": "Subtract scalars [[Physics.vector]] from the coordinates.",
      "short_description": "Subtract scalars [[Physics.vector]] from the coordinates.",
      "line": 214,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "sub",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.sub",
      "outFile": "vector.html#Physics.vector.prototype.sub"
    },
    "Physics.vector#mult": {
      "id": "Physics.vector#mult",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "m",
              "types": [
                "Number"
              ],
              "description": " amount to multiply this vector by\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "m",
          "types": [
            "Number"
          ],
          "description": " amount to multiply this vector by\n\n "
        }
      ],
      "description": "Multiply this by a scalar quantity.\n\nSame as scaling the vector by an amount `m`.",
      "short_description": "Multiply this by a scalar quantity.\n",
      "line": 231,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "mult",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.mult",
      "outFile": "vector.html#Physics.vector.prototype.mult"
    },
    "Physics.vector#dot": {
      "id": "Physics.vector#dot",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the dot product of this vector with `v`.",
      "short_description": "Compute the dot product of this vector with `v`.",
      "line": 250,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "dot",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.dot",
      "outFile": "vector.html#Physics.vector.prototype.dot"
    },
    "Physics.vector#cross": {
      "id": "Physics.vector#cross",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the (left-handed) cross product of this vector with `v`.",
      "short_description": "Compute the (left-handed) cross product of this vector with `v`.",
      "line": 261,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "cross",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.cross",
      "outFile": "vector.html#Physics.vector.prototype.cross"
    },
    "Physics.vector#proj": {
      "id": "Physics.vector#proj",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
      "short_description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
      "line": 272,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "proj",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.proj",
      "outFile": "vector.html#Physics.vector.prototype.proj"
    },
    "Physics.vector#vproj": {
      "id": "Physics.vector#vproj",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
      "short_description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
      "line": 284,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "vproj",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.vproj",
      "outFile": "vector.html#Physics.vector.prototype.vproj"
    },
    "Physics.vector#angle": {
      "id": "Physics.vector#angle",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "optional": true,
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
        }
      ],
      "description": "Compute the angle between `this` and vector `v` or this and x axis.",
      "short_description": "Compute the angle between `this` and vector `v` or this and x axis.",
      "line": 297,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "angle",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.angle",
      "outFile": "vector.html#Physics.vector.prototype.angle"
    },
    "Physics.vector#angle2": {
      "id": "Physics.vector#angle2",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "left",
              "types": [
                "Physics.vector"
              ],
              "description": " The position on the left\n\n "
            },
            {
              "name": "right",
              "types": [
                "Physics.vector"
              ],
              "description": " The position on the right\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "left",
          "types": [
            "Physics.vector"
          ],
          "description": " The position on the left\n\n "
        },
        {
          "name": "right",
          "types": [
            "Physics.vector"
          ],
          "description": " The position on the right\n\n "
        }
      ],
      "description": "Compute the angle created between three points; left -> this -> right.",
      "short_description": "Compute the angle created between three points; left -> this -> right.",
      "line": 336,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "angle2",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.angle2",
      "outFile": "vector.html#Physics.vector.prototype.angle2"
    },
    "Physics.vector#norm": {
      "id": "Physics.vector#norm",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "description": "Compute the norm (length) of this vector.",
      "short_description": "Compute the norm (length) of this vector.",
      "line": 361,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "norm",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.norm",
      "outFile": "vector.html#Physics.vector.prototype.norm"
    },
    "Physics.vector#normSq": {
      "id": "Physics.vector#normSq",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "description": "Compute the norm (length) squared of this vector.",
      "short_description": "Compute the norm (length) squared of this vector.",
      "line": 377,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "normSq",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.normSq",
      "outFile": "vector.html#Physics.vector.prototype.normSq"
    },
    "Physics.vector#dist": {
      "id": "Physics.vector#dist",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the distance from this vector to another vector `v`.",
      "short_description": "Compute the distance from this vector to another vector `v`.",
      "line": 394,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "dist",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.dist",
      "outFile": "vector.html#Physics.vector.prototype.dist"
    },
    "Physics.vector#distSq": {
      "id": "Physics.vector#distSq",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Compute the distance squared from this vector to another vector `v`.",
      "short_description": "Compute the distance squared from this vector to another vector `v`.",
      "line": 409,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "distSq",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.distSq",
      "outFile": "vector.html#Physics.vector.prototype.distSq"
    },
    "Physics.vector#perp": {
      "id": "Physics.vector#perp",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "ccw",
              "optional": true,
              "types": [
                "Boolean"
              ],
              "description": " flag to indicate that we should rotate counterclockwise\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "ccw",
          "types": [
            "Boolean"
          ],
          "description": " flag to indicate that we should rotate counterclockwise\n\n "
        }
      ],
      "description": "Change this vector into a vector that will be perpendicular.\n\nIn other words, rotate by (+-) 90 degrees.",
      "short_description": "Change this vector into a vector that will be perpendicular.\n",
      "line": 426,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "perp",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.perp",
      "outFile": "vector.html#Physics.vector.prototype.perp"
    },
    "Physics.vector#normalize": {
      "id": "Physics.vector#normalize",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Normalise this vector, making it a unit vector.",
      "short_description": "Normalise this vector, making it a unit vector.",
      "line": 454,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "normalize",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.normalize",
      "outFile": "vector.html#Physics.vector.prototype.normalize"
    },
    "Physics.vector#transform": {
      "id": "Physics.vector#transform",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply\n\n "
        }
      ],
      "description": "Apply a [[Physics.transform]] to this vector.",
      "short_description": "Apply a [[Physics.transform]] to this vector.",
      "line": 480,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "transform",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.transform",
      "outFile": "vector.html#Physics.vector.prototype.transform"
    },
    "Physics.vector#transformInv": {
      "id": "Physics.vector#transformInv",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse of\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply the inverse of\n\n "
        }
      ],
      "description": "Apply an inverse [[Physics.transform]] to this vector.",
      "short_description": "Apply an inverse [[Physics.transform]] to this vector.",
      "line": 504,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "transformInv",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.transformInv",
      "outFile": "vector.html#Physics.vector.prototype.transformInv"
    },
    "Physics.vector#rotate": {
      "id": "Physics.vector#rotate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the rotational part of\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "ang",
              "types": [
                "Number"
              ],
              "description": " The angle (in radians), to rotate by\n\n "
            },
            {
              "name": "o",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The point of origin of the rotation\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply the rotational part of\n\n "
        },
        {
          "name": "ang",
          "types": [
            "Number"
          ],
          "description": " The angle (in radians), to rotate by\n\n "
        },
        {
          "name": "o",
          "types": [
            "Vectorish"
          ],
          "description": " The point of origin of the rotation\n\n "
        }
      ],
      "description": "Rotate this vector.\n\nAn angle and rotation origin can be specified,\nor a transform can be specified and only the rotation\nportion of that transform will be applied",
      "short_description": "Rotate this vector.\n",
      "line": 535,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "rotate",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.rotate",
      "outFile": "vector.html#Physics.vector.prototype.rotate"
    },
    "Physics.vector#rotateInv": {
      "id": "Physics.vector#rotateInv",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse rotational part of\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply the inverse rotational part of\n\n "
        }
      ],
      "description": "Apply the inverse rotation of a transform.\n\nOnly the inverse rotation portion of\nthat transform will be applied.",
      "short_description": "Apply the inverse rotation of a transform.\n",
      "line": 577,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "rotateInv",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.rotateInv",
      "outFile": "vector.html#Physics.vector.prototype.rotateInv"
    },
    "Physics.vector#translate": {
      "id": "Physics.vector#translate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the translational part of\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply the translational part of\n\n "
        }
      ],
      "description": "Apply the translation of a transform.\n\nOnly the translation portion of\nthat transform will be applied.",
      "short_description": "Apply the translation of a transform.\n",
      "line": 594,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "translate",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.translate",
      "outFile": "vector.html#Physics.vector.prototype.translate"
    },
    "Physics.vector#translateInv": {
      "id": "Physics.vector#translateInv",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "t",
              "types": [
                "Physics.transform"
              ],
              "description": " The transformation to apply the inverse translational part of\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "t",
          "types": [
            "Physics.transform"
          ],
          "description": " The transformation to apply the inverse translational part of\n\n "
        }
      ],
      "description": "Apply the inverse translation of a transform.\n\nOnly the inverse translation portion of\nthat transform will be applied.",
      "short_description": "Apply the inverse translation of a transform.\n",
      "line": 608,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "translateInv",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.translateInv",
      "outFile": "vector.html#Physics.vector.prototype.translateInv"
    },
    "Physics.vector#clone": {
      "id": "Physics.vector#clone",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The vector-like object to clone\n\n "
            }
          ],
          "returns": [
            {
              "type": "this",
              "description": " If `v` is specified as an argument\n\n "
            },
            {
              "type": "Physics.vector",
              "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Vectorish"
          ],
          "description": " The vector-like object to clone\n\n "
        }
      ],
      "returns": [
        {
          "type": "this",
          "description": " If `v` is specified as an argument\n\n "
        },
        {
          "type": "Physics.vector",
          "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
        }
      ],
      "description": "Create a clone of this vector, or clone another vector into this instance.\n\nThis is especially useful in vector algorithms\nthat use temporary vectors (which most should).\nYou can create temporary vectors and then do things like...\n```\ntemp.clone( otherVector );\n// compute things with temp...\n// then save the result\nresult.clone( tmp );\n```",
      "short_description": "Create a clone of this vector, or clone another vector into this instance.\n",
      "line": 632,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "clone",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.clone",
      "outFile": "vector.html#Physics.vector.prototype.clone"
    },
    "Physics.vector#swap": {
      "id": "Physics.vector#swap",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Swap values with other vector.",
      "short_description": "Swap values with other vector.",
      "line": 665,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "swap",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.swap",
      "outFile": "vector.html#Physics.vector.prototype.swap"
    },
    "Physics.vector#values": {
      "id": "Physics.vector#values",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "description": "Get the coordinate values as an object literal.",
      "short_description": "Get the coordinate values as an object literal.",
      "line": 682,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "values",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.values",
      "outFile": "vector.html#Physics.vector.prototype.values"
    },
    "Physics.vector#zero": {
      "id": "Physics.vector#zero",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Set the coordinates of this vector to zero.",
      "short_description": "Set the coordinates of this vector to zero.",
      "line": 696,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "zero",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.zero",
      "outFile": "vector.html#Physics.vector.prototype.zero"
    },
    "Physics.vector#negate": {
      "id": "Physics.vector#negate",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Flip this vector in the opposite direction.",
      "short_description": "Flip this vector in the opposite direction.",
      "line": 711,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "negate",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.negate",
      "outFile": "vector.html#Physics.vector.prototype.negate"
    },
    "Physics.vector#clamp": {
      "id": "Physics.vector#clamp",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "minV",
              "types": [
                "Vectorish"
              ],
              "description": " The minimum vector\n\n "
            },
            {
              "name": "maxV",
              "types": [
                "Vectorish"
              ],
              "description": " The maximum vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "minV",
          "types": [
            "Vectorish"
          ],
          "description": " The minimum vector\n\n "
        },
        {
          "name": "maxV",
          "types": [
            "Vectorish"
          ],
          "description": " The maximum vector\n\n "
        }
      ],
      "description": "Constrain vector components to minima and maxima.\n\nThe vector analog of [scalar clamping](http://en.wikipedia.org/wiki/Clamping_(graphics)).",
      "short_description": "Constrain vector components to minima and maxima.\n",
      "line": 733,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "clamp",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.clamp",
      "outFile": "vector.html#Physics.vector.prototype.clamp"
    },
    "Physics.vector#toString": {
      "id": "Physics.vector#toString",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "String"
            }
          ]
        }
      ],
      "description": "Get a formatted string of this vector's coordinates.",
      "short_description": "Get a formatted string of this vector's coordinates.",
      "line": 746,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "toString",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.toString",
      "outFile": "vector.html#Physics.vector.prototype.toString"
    },
    "Physics.vector#equals": {
      "id": "Physics.vector#equals",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "v",
              "types": [
                "Physics.vector"
              ],
              "description": " The other vector\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "v",
          "types": [
            "Physics.vector"
          ],
          "description": " The other vector\n\n "
        }
      ],
      "description": "Determine if this vector equals another.",
      "short_description": "Determine if this vector equals another.",
      "line": 758,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "equals",
      "name_prefix": "Physics.vector#",
      "path": "Physics.vector.prototype.equals",
      "outFile": "vector.html#Physics.vector.prototype.equals"
    },
    "Physics.vector.axis": {
      "id": "Physics.vector.axis",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "description": "Read-only axis vectors for general reference.\n\nExample:\n\n```javascript\nPhysics.vector.axis[0]; // The x axis unit vector\nPhysics.vector.axis[1]; // The y axis unit vector\n```",
      "short_description": "Read-only axis vectors for general reference.\n",
      "line": 777,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "axis",
      "name_prefix": "Physics.vector.",
      "path": "Physics.vector.axis",
      "outFile": "vector.html#Physics.vector.axis"
    },
    "Physics.vector.zero": {
      "id": "Physics.vector.zero",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "zeroVector"
            }
          ]
        }
      ],
      "description": "Read-only zero vector for reference",
      "short_description": "Read-only zero vector for reference",
      "line": 787,
      "aliases": [],
      "children": [],
      "file": "src/math/vector.js",
      "name": "zero",
      "name_prefix": "Physics.vector.",
      "path": "Physics.vector.zero",
      "outFile": "vector.html#Physics.vector.zero"
    },
    "CanvasRenderer": {
      "id": "CanvasRenderer",
      "type": "class",
      "superclass": "Renderer",
      "description": "Physics.renderer('canvas')\n\nRenderer that uses HTMLCanvas to render the world bodies.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50\n   }\n});\n```",
      "short_description": "Physics.renderer('canvas')\n",
      "line": 68,
      "aliases": [],
      "children": [
        {
          "id": "CanvasRenderer#addLayer",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                },
                {
                  "name": "el",
                  "optional": true,
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The canvas element to use for this layer\n\n     "
                },
                {
                  "name": "opts",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The options for this layer (see below)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Layer"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            },
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The canvas element to use for this layer\n\n     "
            },
            {
              "name": "opts",
              "types": [
                "Object"
              ],
              "description": " The options for this layer (see below)\n\n     "
            }
          ],
          "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
          "short_description": "Create a new layer.\n",
          "line": 226,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "addLayer",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.addLayer",
          "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
        },
        {
          "id": "CanvasRenderer#draw",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The shape to draw\n\n     "
                },
                {
                  "name": "styles",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                },
                {
                  "name": "offset",
                  "optional": true,
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The offset from center\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The shape to draw\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            },
            {
              "name": "offset",
              "types": [
                "Vectorish"
              ],
              "description": " The offset from center\n\n     "
            }
          ],
          "description": "Draw a geometry to a context.",
          "short_description": "Draw a geometry to a context.",
          "line": 630,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "draw",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.draw",
          "outFile": "canvas.html#CanvasRenderer.prototype.draw"
        },
        {
          "id": "CanvasRenderer#drawCircle",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "r",
                  "types": [
                    "Number"
                  ],
                  "description": " The circle radius\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "r",
              "types": [
                "Number"
              ],
              "description": " The circle radius\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ],
          "description": "Draw a circle to specified canvas context.",
          "short_description": "Draw a circle to specified canvas context.",
          "line": 514,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "drawCircle",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.drawCircle",
          "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
        },
        {
          "id": "CanvasRenderer#drawLine",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "from",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The starting pt\n\n     "
                },
                {
                  "name": "to",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " The ending pt\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "from",
              "types": [
                "Vectorish"
              ],
              "description": " The starting pt\n\n     "
            },
            {
              "name": "to",
              "types": [
                "Vectorish"
              ],
              "description": " The ending pt\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ],
          "description": "Draw a line onto specified canvas context.",
          "short_description": "Draw a line onto specified canvas context.",
          "line": 599,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "drawLine",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.drawLine",
          "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
        },
        {
          "id": "CanvasRenderer#drawPolygon",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "verts",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of [[Vectorish]] vertices\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "verts",
              "types": [
                "Array"
              ],
              "description": " Array of [[Vectorish]] vertices\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ],
          "description": "Draw a polygon to specified canvas context.",
          "short_description": "Draw a polygon to specified canvas context.",
          "line": 534,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "drawPolygon",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.drawPolygon",
          "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
        },
        {
          "id": "CanvasRenderer#drawRect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ],
          "description": "Draw a rectangle to specified canvas context.",
          "short_description": "Draw a rectangle to specified canvas context.",
          "line": 575,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "drawRect",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.drawRect",
          "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
        },
        {
          "id": "CanvasRenderer#layer",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Layer"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            }
          ],
          "description": "Get the layer by id.",
          "short_description": "Get the layer by id.",
          "line": 198,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "layer",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.layer",
          "outFile": "canvas.html#CanvasRenderer.prototype.layer"
        },
        {
          "id": "CanvasRenderer#removeLayer",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "id",
                  "types": [
                    "String"
                  ],
                  "description": " The id for the layer\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "layer",
                  "types": [
                    "Layer"
                  ],
                  "description": " The layer\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            },
            {
              "name": "layer",
              "types": [
                "Layer"
              ],
              "description": " The layer\n\n     "
            }
          ],
          "description": "Remove a layer.",
          "short_description": "Remove a layer.",
          "line": 444,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "removeLayer",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.removeLayer",
          "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
        },
        {
          "id": "CanvasRenderer#resize",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "width",
                  "types": [
                    "Number"
                  ],
                  "description": " The width\n\n     "
                },
                {
                  "name": "height",
                  "types": [
                    "Number"
                  ],
                  "description": " The height\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height\n\n     "
            }
          ],
          "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
          "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
          "line": 464,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "resize",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.resize",
          "outFile": "canvas.html#CanvasRenderer.prototype.resize"
        },
        {
          "id": "CanvasRenderer#setStyle",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "styles",
                  "types": [
                    "Object",
                    "String"
                  ],
                  "description": " Styles to set on the canvas context\n\n     "
                },
                {
                  "name": "ctx",
                  "optional": true,
                  "types": [
                    "Canvas2DContext"
                  ],
                  "description": " The canvas context\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "styles",
              "types": [
                "Object",
                "String"
              ],
              "description": " Styles to set on the canvas context\n\n     "
            },
            {
              "name": "ctx",
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ],
          "description": "Set styles on the specified canvas context (or main context).",
          "short_description": "Set styles on the specified canvas context (or main context).",
          "line": 488,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "setStyle",
          "name_prefix": "CanvasRenderer#",
          "path": "CanvasRenderer.prototype.setStyle",
          "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
        },
        {
          "id": "Layer",
          "type": "class",
          "belongs_to": "CanvasRenderer",
          "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
          "short_description": "A rendering layer for the canvas renderer.\n",
          "line": 235,
          "aliases": [],
          "children": [
            {
              "id": "Layer#addToStack",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to add\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " Body to add\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Body to add\n\n         "
                },
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to add\n\n         "
                }
              ],
              "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
              "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
              "line": 324,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "addToStack",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.addToStack",
              "outFile": "canvas.html#Layer.prototype.addToStack"
            },
            {
              "id": "Layer#bodies",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "Array"
                    }
                  ]
                }
              ],
              "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
              "short_description": "The Bodies this layer is rendering.\n",
              "line": 300,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "bodies",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.bodies",
              "outFile": "canvas.html#Layer.prototype.bodies"
            },
            {
              "id": "Layer#el",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "HTMLElement"
                    }
                  ]
                }
              ],
              "description": "The layer's Canvas",
              "short_description": "The layer's Canvas",
              "line": 251,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "el",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.el",
              "outFile": "canvas.html#Layer.prototype.el"
            },
            {
              "id": "Layer#id",
              "type": "constant",
              "signatures": [
                {
                  "returns": [
                    {
                      "type": "String"
                    }
                  ]
                }
              ],
              "description": "The layer's ID",
              "short_description": "The layer's ID",
              "line": 245,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "id",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.id",
              "outFile": "canvas.html#Layer.prototype.id"
            },
            {
              "id": "Layer#options",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "options",
                      "types": [
                        "Object"
                      ],
                      "description": " The options to set as an object\n\n                  "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Object",
                      "description": " The options\n\n                  "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n                  "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n                  "
                }
              ],
              "related_to": "Physics.util.options",
              "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
              "short_description": "Set options on this layer.\n",
              "line": 267,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "options",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.options",
              "outFile": "canvas.html#Layer.prototype.options"
            },
            {
              "id": "Layer#removeFromStack",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "types": [
                        "Array"
                      ],
                      "description": " Array of bodies to remove\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                },
                {
                  "arguments": [
                    {
                      "name": "body",
                      "types": [
                        "Body"
                      ],
                      "description": " Body to remove\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Body to remove\n\n         "
                },
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to remove\n\n         "
                }
              ],
              "description": "Remove body (bodies) from the rendering stack for this layer.",
              "short_description": "Remove body (bodies) from the rendering stack for this layer.",
              "line": 342,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "removeFromStack",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.removeFromStack",
              "outFile": "canvas.html#Layer.prototype.removeFromStack"
            },
            {
              "id": "Layer#render",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "clear",
                      "optional": true,
                      "types": [
                        "Boolean"
                      ],
                      "description": " Clear the canvas (default: `true`)\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "clear",
                  "types": [
                    "Boolean"
                  ],
                  "description": " Clear the canvas (default: `true`)\n\n         "
                }
              ],
              "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
              "short_description": "Render the bodies in this layer's stack.\n",
              "line": 373,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "render",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.render",
              "outFile": "canvas.html#Layer.prototype.render"
            },
            {
              "id": "Layer#reset",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "arr",
                      "optional": true,
                      "types": [
                        "Array"
                      ],
                      "description": " Array to replace the current stack of Bodies.\n\n         "
                    }
                  ],
                  "returns": [
                    {
                      "type": "this"
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array to replace the current stack of Bodies.\n\n         "
                }
              ],
              "description": "Reset the stack.",
              "short_description": "Reset the stack.",
              "line": 308,
              "aliases": [],
              "children": [],
              "file": "src/renderers/canvas.js",
              "name": "reset",
              "name_prefix": "Layer#",
              "path": "Layer.prototype.reset",
              "outFile": "canvas.html#Layer.prototype.reset"
            }
          ],
          "file": "src/renderers/canvas.js",
          "subclasses": [],
          "name": "Layer",
          "path": "Layer",
          "outFile": "canvas.html"
        }
      ],
      "file": "src/renderers/canvas.js",
      "subclasses": [],
      "name": "CanvasRenderer",
      "path": "CanvasRenderer",
      "outFile": "canvas.html"
    },
    "CanvasRenderer#layer": {
      "id": "CanvasRenderer#layer",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Layer"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "id",
          "types": [
            "String"
          ],
          "description": " The id for the layer\n\n     "
        }
      ],
      "description": "Get the layer by id.",
      "short_description": "Get the layer by id.",
      "line": 198,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "layer",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.layer",
      "outFile": "canvas.html#CanvasRenderer.prototype.layer"
    },
    "CanvasRenderer#addLayer": {
      "id": "CanvasRenderer#addLayer",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            },
            {
              "name": "el",
              "optional": true,
              "types": [
                "HTMLElement"
              ],
              "description": " The canvas element to use for this layer\n\n     "
            },
            {
              "name": "opts",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The options for this layer (see below)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Layer"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "id",
          "types": [
            "String"
          ],
          "description": " The id for the layer\n\n     "
        },
        {
          "name": "el",
          "types": [
            "HTMLElement"
          ],
          "description": " The canvas element to use for this layer\n\n     "
        },
        {
          "name": "opts",
          "types": [
            "Object"
          ],
          "description": " The options for this layer (see below)\n\n     "
        }
      ],
      "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
      "short_description": "Create a new layer.\n",
      "line": 226,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "addLayer",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.addLayer",
      "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
    },
    "Layer": {
      "id": "Layer",
      "type": "class",
      "belongs_to": "CanvasRenderer",
      "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
      "short_description": "A rendering layer for the canvas renderer.\n",
      "line": 235,
      "aliases": [],
      "children": [
        {
          "id": "Layer#addToStack",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to add\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Body to add\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Body to add\n\n         "
            },
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to add\n\n         "
            }
          ],
          "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
          "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
          "line": 324,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "addToStack",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.addToStack",
          "outFile": "canvas.html#Layer.prototype.addToStack"
        },
        {
          "id": "Layer#bodies",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "Array"
                }
              ]
            }
          ],
          "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
          "short_description": "The Bodies this layer is rendering.\n",
          "line": 300,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "bodies",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.bodies",
          "outFile": "canvas.html#Layer.prototype.bodies"
        },
        {
          "id": "Layer#el",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "HTMLElement"
                }
              ]
            }
          ],
          "description": "The layer's Canvas",
          "short_description": "The layer's Canvas",
          "line": 251,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "el",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.el",
          "outFile": "canvas.html#Layer.prototype.el"
        },
        {
          "id": "Layer#id",
          "type": "constant",
          "signatures": [
            {
              "returns": [
                {
                  "type": "String"
                }
              ]
            }
          ],
          "description": "The layer's ID",
          "short_description": "The layer's ID",
          "line": 245,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "id",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.id",
          "outFile": "canvas.html#Layer.prototype.id"
        },
        {
          "id": "Layer#options",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " The options to set as an object\n\n                  "
                }
              ],
              "returns": [
                {
                  "type": "Object",
                  "description": " The options\n\n                  "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n                  "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n                  "
            }
          ],
          "related_to": "Physics.util.options",
          "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
          "short_description": "Set options on this layer.\n",
          "line": 267,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "options",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.options",
          "outFile": "canvas.html#Layer.prototype.options"
        },
        {
          "id": "Layer#removeFromStack",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of bodies to remove\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " Body to remove\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Body to remove\n\n         "
            },
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to remove\n\n         "
            }
          ],
          "description": "Remove body (bodies) from the rendering stack for this layer.",
          "short_description": "Remove body (bodies) from the rendering stack for this layer.",
          "line": 342,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "removeFromStack",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.removeFromStack",
          "outFile": "canvas.html#Layer.prototype.removeFromStack"
        },
        {
          "id": "Layer#render",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "clear",
                  "optional": true,
                  "types": [
                    "Boolean"
                  ],
                  "description": " Clear the canvas (default: `true`)\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "clear",
              "types": [
                "Boolean"
              ],
              "description": " Clear the canvas (default: `true`)\n\n         "
            }
          ],
          "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
          "short_description": "Render the bodies in this layer's stack.\n",
          "line": 373,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "render",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.render",
          "outFile": "canvas.html#Layer.prototype.render"
        },
        {
          "id": "Layer#reset",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "arr",
                  "optional": true,
                  "types": [
                    "Array"
                  ],
                  "description": " Array to replace the current stack of Bodies.\n\n         "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array to replace the current stack of Bodies.\n\n         "
            }
          ],
          "description": "Reset the stack.",
          "short_description": "Reset the stack.",
          "line": 308,
          "aliases": [],
          "children": [],
          "file": "src/renderers/canvas.js",
          "name": "reset",
          "name_prefix": "Layer#",
          "path": "Layer.prototype.reset",
          "outFile": "canvas.html#Layer.prototype.reset"
        }
      ],
      "file": "src/renderers/canvas.js",
      "subclasses": [],
      "name": "Layer",
      "path": "Layer",
      "outFile": "canvas.html"
    },
    "Layer#id": {
      "id": "Layer#id",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "String"
            }
          ]
        }
      ],
      "description": "The layer's ID",
      "short_description": "The layer's ID",
      "line": 245,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "id",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.id",
      "outFile": "canvas.html#Layer.prototype.id"
    },
    "Layer#el": {
      "id": "Layer#el",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "HTMLElement"
            }
          ]
        }
      ],
      "description": "The layer's Canvas",
      "short_description": "The layer's Canvas",
      "line": 251,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "el",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.el",
      "outFile": "canvas.html#Layer.prototype.el"
    },
    "Layer#options": {
      "id": "Layer#options",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " The options to set as an object\n\n                  "
            }
          ],
          "returns": [
            {
              "type": "Object",
              "description": " The options\n\n                  "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " The options to set as an object\n\n                  "
        }
      ],
      "returns": [
        {
          "type": "Object",
          "description": " The options\n\n                  "
        }
      ],
      "related_to": "Physics.util.options",
      "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
      "short_description": "Set options on this layer.\n",
      "line": 267,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "options",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.options",
      "outFile": "canvas.html#Layer.prototype.options"
    },
    "Layer#bodies": {
      "id": "Layer#bodies",
      "type": "constant",
      "signatures": [
        {
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
      "short_description": "The Bodies this layer is rendering.\n",
      "line": 300,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "bodies",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.bodies",
      "outFile": "canvas.html#Layer.prototype.bodies"
    },
    "Layer#reset": {
      "id": "Layer#reset",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "optional": true,
              "types": [
                "Array"
              ],
              "description": " Array to replace the current stack of Bodies.\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " Array to replace the current stack of Bodies.\n\n         "
        }
      ],
      "description": "Reset the stack.",
      "short_description": "Reset the stack.",
      "line": 308,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "reset",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.reset",
      "outFile": "canvas.html#Layer.prototype.reset"
    },
    "Layer#addToStack": {
      "id": "Layer#addToStack",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to add\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Body to add\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " Body to add\n\n         "
        },
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " Array of bodies to add\n\n         "
        }
      ],
      "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
      "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
      "line": 324,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "addToStack",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.addToStack",
      "outFile": "canvas.html#Layer.prototype.addToStack"
    },
    "Layer#removeFromStack": {
      "id": "Layer#removeFromStack",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " Array of bodies to remove\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " Body to remove\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " Body to remove\n\n         "
        },
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " Array of bodies to remove\n\n         "
        }
      ],
      "description": "Remove body (bodies) from the rendering stack for this layer.",
      "short_description": "Remove body (bodies) from the rendering stack for this layer.",
      "line": 342,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "removeFromStack",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.removeFromStack",
      "outFile": "canvas.html#Layer.prototype.removeFromStack"
    },
    "Layer#render": {
      "id": "Layer#render",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "clear",
              "optional": true,
              "types": [
                "Boolean"
              ],
              "description": " Clear the canvas (default: `true`)\n\n         "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "clear",
          "types": [
            "Boolean"
          ],
          "description": " Clear the canvas (default: `true`)\n\n         "
        }
      ],
      "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
      "short_description": "Render the bodies in this layer's stack.\n",
      "line": 373,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "render",
      "name_prefix": "Layer#",
      "path": "Layer.prototype.render",
      "outFile": "canvas.html#Layer.prototype.render"
    },
    "CanvasRenderer#removeLayer": {
      "id": "CanvasRenderer#removeLayer",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "id",
              "types": [
                "String"
              ],
              "description": " The id for the layer\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "layer",
              "types": [
                "Layer"
              ],
              "description": " The layer\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "id",
          "types": [
            "String"
          ],
          "description": " The id for the layer\n\n     "
        },
        {
          "name": "layer",
          "types": [
            "Layer"
          ],
          "description": " The layer\n\n     "
        }
      ],
      "description": "Remove a layer.",
      "short_description": "Remove a layer.",
      "line": 444,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "removeLayer",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.removeLayer",
      "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
    },
    "CanvasRenderer#resize": {
      "id": "CanvasRenderer#resize",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "width",
          "types": [
            "Number"
          ],
          "description": " The width\n\n     "
        },
        {
          "name": "height",
          "types": [
            "Number"
          ],
          "description": " The height\n\n     "
        }
      ],
      "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
      "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
      "line": 464,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "resize",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.resize",
      "outFile": "canvas.html#CanvasRenderer.prototype.resize"
    },
    "CanvasRenderer#setStyle": {
      "id": "CanvasRenderer#setStyle",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "styles",
              "types": [
                "Object",
                "String"
              ],
              "description": " Styles to set on the canvas context\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "styles",
          "types": [
            "Object",
            "String"
          ],
          "description": " Styles to set on the canvas context\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        }
      ],
      "description": "Set styles on the specified canvas context (or main context).",
      "short_description": "Set styles on the specified canvas context (or main context).",
      "line": 488,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "setStyle",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.setStyle",
      "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
    },
    "CanvasRenderer#drawCircle": {
      "id": "CanvasRenderer#drawCircle",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "r",
              "types": [
                "Number"
              ],
              "description": " The circle radius\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " The x coord\n\n     "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " The y coord\n\n     "
        },
        {
          "name": "r",
          "types": [
            "Number"
          ],
          "description": " The circle radius\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        }
      ],
      "description": "Draw a circle to specified canvas context.",
      "short_description": "Draw a circle to specified canvas context.",
      "line": 514,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "drawCircle",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.drawCircle",
      "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
    },
    "CanvasRenderer#drawPolygon": {
      "id": "CanvasRenderer#drawPolygon",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "verts",
              "types": [
                "Array"
              ],
              "description": " Array of [[Vectorish]] vertices\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "verts",
          "types": [
            "Array"
          ],
          "description": " Array of [[Vectorish]] vertices\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        }
      ],
      "description": "Draw a polygon to specified canvas context.",
      "short_description": "Draw a polygon to specified canvas context.",
      "line": 534,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "drawPolygon",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.drawPolygon",
      "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
    },
    "CanvasRenderer#drawRect": {
      "id": "CanvasRenderer#drawRect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The width\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The height\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " The x coord\n\n     "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " The y coord\n\n     "
        },
        {
          "name": "width",
          "types": [
            "Number"
          ],
          "description": " The width\n\n     "
        },
        {
          "name": "height",
          "types": [
            "Number"
          ],
          "description": " The height\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        }
      ],
      "description": "Draw a rectangle to specified canvas context.",
      "short_description": "Draw a rectangle to specified canvas context.",
      "line": 575,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "drawRect",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.drawRect",
      "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
    },
    "CanvasRenderer#drawLine": {
      "id": "CanvasRenderer#drawLine",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "from",
              "types": [
                "Vectorish"
              ],
              "description": " The starting pt\n\n     "
            },
            {
              "name": "to",
              "types": [
                "Vectorish"
              ],
              "description": " The ending pt\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "from",
          "types": [
            "Vectorish"
          ],
          "description": " The starting pt\n\n     "
        },
        {
          "name": "to",
          "types": [
            "Vectorish"
          ],
          "description": " The ending pt\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        }
      ],
      "description": "Draw a line onto specified canvas context.",
      "short_description": "Draw a line onto specified canvas context.",
      "line": 599,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "drawLine",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.drawLine",
      "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
    },
    "CanvasRenderer#draw": {
      "id": "CanvasRenderer#draw",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The shape to draw\n\n     "
            },
            {
              "name": "styles",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            },
            {
              "name": "ctx",
              "optional": true,
              "types": [
                "Canvas2DContext"
              ],
              "description": " The canvas context\n\n     "
            },
            {
              "name": "offset",
              "optional": true,
              "types": [
                "Vectorish"
              ],
              "description": " The offset from center\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " The shape to draw\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        },
        {
          "name": "ctx",
          "types": [
            "Canvas2DContext"
          ],
          "description": " The canvas context\n\n     "
        },
        {
          "name": "offset",
          "types": [
            "Vectorish"
          ],
          "description": " The offset from center\n\n     "
        }
      ],
      "description": "Draw a geometry to a context.",
      "short_description": "Draw a geometry to a context.",
      "line": 630,
      "aliases": [],
      "children": [],
      "file": "src/renderers/canvas.js",
      "name": "draw",
      "name_prefix": "CanvasRenderer#",
      "path": "CanvasRenderer.prototype.draw",
      "outFile": "canvas.html#CanvasRenderer.prototype.draw"
    },
    "DebugRenderer": {
      "id": "DebugRenderer",
      "type": "class",
      "superclass": "Renderer",
      "description": "Physics.renderer('debug')\n\nExtends canvas renderer with special debugging functionality.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n- drawAABB: whether or not to draw bounding boxes. (default: `true`)\n- drawRealPosition: whether or not to draw the non-interpolated position of bodies. (default: `false`)\n- drawIntervals: whether or not to draw the broadphase (sweep-prune) intervals. (default: `false`)\n- drawContacts: whether or not to draw contact points. (default: `false`)\n- drawSleepState: whether or not to highlight sleeping bodies. (default: `false`)\n- drawBodyState: whether or not to show body position and velocity. (default: `false`)\n- aabbColor: the color of AABBs\n- realBodyStyle: styles used to draw the image of the body at its true non-interpolated position\n- intervalMinColor: color of interval minima\n- intervalMaxColor: color of interval maxima\n- mtvColor: color of minimum transit vector for contacts (overlaps)\n- contactColor: color of contact points\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```",
      "short_description": "Physics.renderer('debug')\n",
      "line": 52,
      "aliases": [],
      "children": [],
      "file": "src/renderers/debug.js",
      "subclasses": [],
      "name": "DebugRenderer",
      "path": "DebugRenderer",
      "outFile": "debug.html"
    },
    "DomRenderer": {
      "id": "DomRenderer",
      "type": "class",
      "superclass": "Renderer",
      "description": "Physics.renderer('dom')\n\nRenderer that manipulates DOM elements according to the physics simulation. Very primative...",
      "short_description": "Physics.renderer('dom')\n",
      "line": 8,
      "aliases": [],
      "children": [
        {
          "id": "DomRenderer#attach",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "HTMLElement",
                    "Object"
                  ],
                  "description": " DOM node or event data (`data.body`)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "HTMLElement",
                "Object"
              ],
              "description": " DOM node or event data (`data.body`)\n\n     "
            }
          ],
          "description": "Event callback to attach a node to the viewport",
          "short_description": "Event callback to attach a node to the viewport",
          "line": 242,
          "aliases": [],
          "children": [],
          "file": "src/renderers/dom.js",
          "name": "attach",
          "name_prefix": "DomRenderer#",
          "path": "DomRenderer.prototype.attach",
          "outFile": "dom.html#DomRenderer.prototype.attach"
        },
        {
          "id": "DomRenderer#circleProperties",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ],
          "internal": true,
          "description": "Set dom element style properties for a circle.",
          "short_description": "Set dom element style properties for a circle.",
          "line": 136,
          "aliases": [],
          "children": [],
          "file": "src/renderers/dom.js",
          "name": "circleProperties",
          "name_prefix": "DomRenderer#",
          "path": "DomRenderer.prototype.circleProperties",
          "outFile": "dom.html#DomRenderer.prototype.circleProperties"
        },
        {
          "id": "DomRenderer#detach",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "HTMLElement",
                    "Object"
                  ],
                  "description": " DOM node or event data (`data.body`)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "HTMLElement",
                "Object"
              ],
              "description": " DOM node or event data (`data.body`)\n\n     "
            }
          ],
          "description": "Event callback to detach a node from the DOM",
          "short_description": "Event callback to detach a node from the DOM",
          "line": 221,
          "aliases": [],
          "children": [],
          "file": "src/renderers/dom.js",
          "name": "detach",
          "name_prefix": "DomRenderer#",
          "path": "DomRenderer.prototype.detach",
          "outFile": "dom.html#DomRenderer.prototype.detach"
        },
        {
          "id": "DomRenderer#pointProperties",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ],
          "internal": true,
          "description": "Set dom element style properties for a point.",
          "short_description": "Set dom element style properties for a point.",
          "line": 120,
          "aliases": [],
          "children": [],
          "file": "src/renderers/dom.js",
          "name": "pointProperties",
          "name_prefix": "DomRenderer#",
          "path": "DomRenderer.prototype.pointProperties",
          "outFile": "dom.html#DomRenderer.prototype.pointProperties"
        },
        {
          "id": "DomRenderer#rectangleProperties",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "el",
                  "types": [
                    "HTMLElement"
                  ],
                  "description": " The element\n\n     "
                },
                {
                  "name": "geometry",
                  "types": [
                    "Geometry"
                  ],
                  "description": " The body's geometry\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ],
          "internal": true,
          "description": "Set dom element style properties for a rectangle.",
          "short_description": "Set dom element style properties for a rectangle.",
          "line": 154,
          "aliases": [],
          "children": [],
          "file": "src/renderers/dom.js",
          "name": "rectangleProperties",
          "name_prefix": "DomRenderer#",
          "path": "DomRenderer.prototype.rectangleProperties",
          "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
        }
      ],
      "file": "src/renderers/dom.js",
      "subclasses": [],
      "name": "DomRenderer",
      "path": "DomRenderer",
      "outFile": "dom.html"
    },
    "DomRenderer#pointProperties": {
      "id": "DomRenderer#pointProperties",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "el",
          "types": [
            "HTMLElement"
          ],
          "description": " The element\n\n     "
        },
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " The body's geometry\n\n     "
        }
      ],
      "internal": true,
      "description": "Set dom element style properties for a point.",
      "short_description": "Set dom element style properties for a point.",
      "line": 120,
      "aliases": [],
      "children": [],
      "file": "src/renderers/dom.js",
      "name": "pointProperties",
      "name_prefix": "DomRenderer#",
      "path": "DomRenderer.prototype.pointProperties",
      "outFile": "dom.html#DomRenderer.prototype.pointProperties"
    },
    "DomRenderer#circleProperties": {
      "id": "DomRenderer#circleProperties",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "el",
          "types": [
            "HTMLElement"
          ],
          "description": " The element\n\n     "
        },
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " The body's geometry\n\n     "
        }
      ],
      "internal": true,
      "description": "Set dom element style properties for a circle.",
      "short_description": "Set dom element style properties for a circle.",
      "line": 136,
      "aliases": [],
      "children": [],
      "file": "src/renderers/dom.js",
      "name": "circleProperties",
      "name_prefix": "DomRenderer#",
      "path": "DomRenderer.prototype.circleProperties",
      "outFile": "dom.html#DomRenderer.prototype.circleProperties"
    },
    "DomRenderer#rectangleProperties": {
      "id": "DomRenderer#rectangleProperties",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "el",
              "types": [
                "HTMLElement"
              ],
              "description": " The element\n\n     "
            },
            {
              "name": "geometry",
              "types": [
                "Geometry"
              ],
              "description": " The body's geometry\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "el",
          "types": [
            "HTMLElement"
          ],
          "description": " The element\n\n     "
        },
        {
          "name": "geometry",
          "types": [
            "Geometry"
          ],
          "description": " The body's geometry\n\n     "
        }
      ],
      "internal": true,
      "description": "Set dom element style properties for a rectangle.",
      "short_description": "Set dom element style properties for a rectangle.",
      "line": 154,
      "aliases": [],
      "children": [],
      "file": "src/renderers/dom.js",
      "name": "rectangleProperties",
      "name_prefix": "DomRenderer#",
      "path": "DomRenderer.prototype.rectangleProperties",
      "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
    },
    "DomRenderer#detach": {
      "id": "DomRenderer#detach",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "HTMLElement",
                "Object"
              ],
              "description": " DOM node or event data (`data.body`)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "HTMLElement",
            "Object"
          ],
          "description": " DOM node or event data (`data.body`)\n\n     "
        }
      ],
      "description": "Event callback to detach a node from the DOM",
      "short_description": "Event callback to detach a node from the DOM",
      "line": 221,
      "aliases": [],
      "children": [],
      "file": "src/renderers/dom.js",
      "name": "detach",
      "name_prefix": "DomRenderer#",
      "path": "DomRenderer.prototype.detach",
      "outFile": "dom.html#DomRenderer.prototype.detach"
    },
    "DomRenderer#attach": {
      "id": "DomRenderer#attach",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "HTMLElement",
                "Object"
              ],
              "description": " DOM node or event data (`data.body`)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "HTMLElement",
            "Object"
          ],
          "description": " DOM node or event data (`data.body`)\n\n     "
        }
      ],
      "description": "Event callback to attach a node to the viewport",
      "short_description": "Event callback to attach a node to the viewport",
      "line": 242,
      "aliases": [],
      "children": [],
      "file": "src/renderers/dom.js",
      "name": "attach",
      "name_prefix": "DomRenderer#",
      "path": "DomRenderer.prototype.attach",
      "outFile": "dom.html#DomRenderer.prototype.attach"
    },
    "PixiRenderer": {
      "id": "PixiRenderer",
      "type": "class",
      "superclass": "Renderer",
      "description": "Physics.renderer('pixi')\n\nRenderer that uses the PIXI.js library. [Documentation can be found here](https://github.com/wellcaffeinated/PhysicsJS/wiki/PIXI-Renderer).\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n   // Defines the default canvas colour\n   'color': '0x66FF99',\n\n   'circle' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C',\n       strokeAlpha: 1,\n       fillAlpha: 1\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '0x542437',\n       lineWidth: 1,\n       fillStyle: '0x542437',\n       angleIndicator: '0xFFFFFF'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50,\n       anchor: { x: 0.5, y: 0.5 }\n   }\n});\n```",
      "short_description": "Physics.renderer('pixi')\n",
      "line": 76,
      "aliases": [],
      "children": [
        {
          "id": "PixiRenderer#attach",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "PIXI.Graphics",
                    "Object"
                  ],
                  "description": " Graphics object or event data (`data.body`)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "PIXI.Graphics",
                "Object"
              ],
              "description": " Graphics object or event data (`data.body`)\n\n     "
            }
          ],
          "description": "Event callback to attach a child to the stage",
          "short_description": "Event callback to attach a child to the stage",
          "line": 239,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "attach",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.attach",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
        },
        {
          "id": "PixiRenderer#centerAnchor",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "view",
                  "types": [
                    "PIXI.DisplayObject"
                  ],
                  "description": " The view to center\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "view",
              "types": [
                "PIXI.DisplayObject"
              ],
              "description": " The view to center\n\n     "
            }
          ],
          "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
          "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
          "line": 622,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "centerAnchor",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.centerAnchor",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
        },
        {
          "id": "PixiRenderer#createCircle",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "r",
                  "types": [
                    "Number"
                  ],
                  "description": " The circle radius\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a circle.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "r",
              "types": [
                "Number"
              ],
              "description": " The circle radius\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a circle.\n\n     "
            }
          ],
          "description": "Create a circle for use in PIXI stage",
          "short_description": "Create a circle for use in PIXI stage",
          "line": 362,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "createCircle",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.createCircle",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
        },
        {
          "id": "PixiRenderer#createDisplay",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "type",
                  "types": [
                    "String"
                  ],
                  "description": " The type of PIXI.DisplayObject to make\n\n     "
                },
                {
                  "name": "options",
                  "types": [
                    "Object"
                  ],
                  "description": " Options to apply to the view.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.DisplayObject",
                  "description": " An object that is renderable.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "type",
              "types": [
                "String"
              ],
              "description": " The type of PIXI.DisplayObject to make\n\n     "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " Options to apply to the view.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.DisplayObject",
              "description": " An object that is renderable.\n\n     "
            }
          ],
          "description": "Create a PIXI sprite or movie clip.",
          "short_description": "Create a PIXI sprite or movie clip.",
          "line": 563,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "createDisplay",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.createDisplay",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
        },
        {
          "id": "PixiRenderer#createLine",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "from",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Starting point\n\n     "
                },
                {
                  "name": "to",
                  "types": [
                    "Vectorish"
                  ],
                  "description": " Ending point\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a polygon.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "from",
              "types": [
                "Vectorish"
              ],
              "description": " Starting point\n\n     "
            },
            {
              "name": "to",
              "types": [
                "Vectorish"
              ],
              "description": " Ending point\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a polygon.\n\n     "
            }
          ],
          "description": "Create a line for use in PIXI stage",
          "short_description": "Create a line for use in PIXI stage",
          "line": 441,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "createLine",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.createLine",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
        },
        {
          "id": "PixiRenderer#createPolygon",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "verts",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of [[Vectorish]] vertices\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a polygon.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "verts",
              "types": [
                "Array"
              ],
              "description": " Array of [[Vectorish]] vertices\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a polygon.\n\n     "
            }
          ],
          "description": "Create a polygon for use in PIXI stage",
          "short_description": "Create a polygon for use in PIXI stage",
          "line": 399,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "createPolygon",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.createPolygon",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
        },
        {
          "id": "PixiRenderer#createRect",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "x",
                  "types": [
                    "Number"
                  ],
                  "description": " The x coord\n\n     "
                },
                {
                  "name": "y",
                  "types": [
                    "Number"
                  ],
                  "description": " The y coord\n\n     "
                },
                {
                  "name": "r",
                  "types": [
                    "Number"
                  ],
                  "description": " The rectangle width\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Number"
                  ],
                  "description": " The rectangle height\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object representing a circle.\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "width",
              "types": [
                "Number"
              ],
              "description": " The rectangle width\n\n     "
            },
            {
              "name": "height",
              "types": [
                "Number"
              ],
              "description": " The rectangle height\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a circle.\n\n     "
            }
          ],
          "description": "Create a rectangle for use in PIXI stage",
          "short_description": "Create a rectangle for use in PIXI stage",
          "line": 382,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "createRect",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.createRect",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
        },
        {
          "id": "PixiRenderer#detach",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "data",
                  "types": [
                    "PIXI.Graphics",
                    "Object"
                  ],
                  "description": " Graphics object or event data (`data.body`)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "data",
              "types": [
                "PIXI.Graphics",
                "Object"
              ],
              "description": " Graphics object or event data (`data.body`)\n\n     "
            }
          ],
          "description": "Event callback to detach a child from the stage",
          "short_description": "Event callback to detach a child from the stage",
          "line": 220,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "detach",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.detach",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
        },
        {
          "id": "PixiRenderer#drawBody",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "body",
                  "types": [
                    "Body"
                  ],
                  "description": " The body to draw\n\n     "
                },
                {
                  "name": "view",
                  "types": [
                    "DisplayObject"
                  ],
                  "description": " The pixi display object\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The body to draw\n\n     "
            },
            {
              "name": "view",
              "types": [
                "DisplayObject"
              ],
              "description": " The pixi display object\n\n     "
            }
          ],
          "description": "Draw a PIXI.DisplayObject to the stage.",
          "short_description": "Draw a PIXI.DisplayObject to the stage.",
          "line": 287,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "drawBody",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.drawBody",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
        },
        {
          "id": "PixiRenderer#loadSpriteSheets",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "assetsToLoad",
                  "types": [
                    "Array"
                  ],
                  "description": " Array of spritesheets to load\n\n     "
                },
                {
                  "name": "callback",
                  "types": [
                    "Function"
                  ],
                  "description": " Function to call when loading is complete\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "assetsToLoad",
              "types": [
                "Array"
              ],
              "description": " Array of spritesheets to load\n\n     "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " Function to call when loading is complete\n\n     "
            }
          ],
          "description": "Loads textures defined in a spritesheet",
          "short_description": "Loads textures defined in a spritesheet",
          "line": 259,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "loadSpriteSheets",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.loadSpriteSheets",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
        },
        {
          "id": "PixiRenderer#setStyles",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "graphics",
                  "types": [
                    "PIXI.Graphics"
                  ],
                  "description": " The graphics object to set styles on\n\n     "
                },
                {
                  "name": "styles",
                  "types": [
                    "Object"
                  ],
                  "description": " The styles configuration\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "PIXI.Graphics",
                  "description": " A graphic object\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "graphics",
              "types": [
                "PIXI.Graphics"
              ],
              "description": " The graphics object to set styles on\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object\n\n     "
            }
          ],
          "description": "Set styles on pixi graphics object",
          "short_description": "Set styles on pixi graphics object",
          "line": 322,
          "aliases": [],
          "children": [],
          "file": "src/renderers/pixi-renderer.js",
          "name": "setStyles",
          "name_prefix": "PixiRenderer#",
          "path": "PixiRenderer.prototype.setStyles",
          "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
        }
      ],
      "file": "src/renderers/pixi-renderer.js",
      "subclasses": [],
      "name": "PixiRenderer",
      "path": "PixiRenderer",
      "outFile": "pixi-renderer.html"
    },
    "PixiRenderer#detach": {
      "id": "PixiRenderer#detach",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "PIXI.Graphics",
                "Object"
              ],
              "description": " Graphics object or event data (`data.body`)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "PIXI.Graphics",
            "Object"
          ],
          "description": " Graphics object or event data (`data.body`)\n\n     "
        }
      ],
      "description": "Event callback to detach a child from the stage",
      "short_description": "Event callback to detach a child from the stage",
      "line": 220,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "detach",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.detach",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
    },
    "PixiRenderer#attach": {
      "id": "PixiRenderer#attach",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "data",
              "types": [
                "PIXI.Graphics",
                "Object"
              ],
              "description": " Graphics object or event data (`data.body`)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "data",
          "types": [
            "PIXI.Graphics",
            "Object"
          ],
          "description": " Graphics object or event data (`data.body`)\n\n     "
        }
      ],
      "description": "Event callback to attach a child to the stage",
      "short_description": "Event callback to attach a child to the stage",
      "line": 239,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "attach",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.attach",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
    },
    "PixiRenderer#loadSpriteSheets": {
      "id": "PixiRenderer#loadSpriteSheets",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "assetsToLoad",
              "types": [
                "Array"
              ],
              "description": " Array of spritesheets to load\n\n     "
            },
            {
              "name": "callback",
              "types": [
                "Function"
              ],
              "description": " Function to call when loading is complete\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "assetsToLoad",
          "types": [
            "Array"
          ],
          "description": " Array of spritesheets to load\n\n     "
        },
        {
          "name": "callback",
          "types": [
            "Function"
          ],
          "description": " Function to call when loading is complete\n\n     "
        }
      ],
      "description": "Loads textures defined in a spritesheet",
      "short_description": "Loads textures defined in a spritesheet",
      "line": 259,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "loadSpriteSheets",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.loadSpriteSheets",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
    },
    "PixiRenderer#drawBody": {
      "id": "PixiRenderer#drawBody",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "body",
              "types": [
                "Body"
              ],
              "description": " The body to draw\n\n     "
            },
            {
              "name": "view",
              "types": [
                "DisplayObject"
              ],
              "description": " The pixi display object\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "body",
          "types": [
            "Body"
          ],
          "description": " The body to draw\n\n     "
        },
        {
          "name": "view",
          "types": [
            "DisplayObject"
          ],
          "description": " The pixi display object\n\n     "
        }
      ],
      "description": "Draw a PIXI.DisplayObject to the stage.",
      "short_description": "Draw a PIXI.DisplayObject to the stage.",
      "line": 287,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "drawBody",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.drawBody",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
    },
    "PixiRenderer#setStyles": {
      "id": "PixiRenderer#setStyles",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "graphics",
              "types": [
                "PIXI.Graphics"
              ],
              "description": " The graphics object to set styles on\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "graphics",
          "types": [
            "PIXI.Graphics"
          ],
          "description": " The graphics object to set styles on\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.Graphics",
          "description": " A graphic object\n\n     "
        }
      ],
      "description": "Set styles on pixi graphics object",
      "short_description": "Set styles on pixi graphics object",
      "line": 322,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "setStyles",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.setStyles",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
    },
    "PixiRenderer#createCircle": {
      "id": "PixiRenderer#createCircle",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "r",
              "types": [
                "Number"
              ],
              "description": " The circle radius\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a circle.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " The x coord\n\n     "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " The y coord\n\n     "
        },
        {
          "name": "r",
          "types": [
            "Number"
          ],
          "description": " The circle radius\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.Graphics",
          "description": " A graphic object representing a circle.\n\n     "
        }
      ],
      "description": "Create a circle for use in PIXI stage",
      "short_description": "Create a circle for use in PIXI stage",
      "line": 362,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "createCircle",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.createCircle",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
    },
    "PixiRenderer#createRect": {
      "id": "PixiRenderer#createRect",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "x",
              "types": [
                "Number"
              ],
              "description": " The x coord\n\n     "
            },
            {
              "name": "y",
              "types": [
                "Number"
              ],
              "description": " The y coord\n\n     "
            },
            {
              "name": "r",
              "types": [
                "Number"
              ],
              "description": " The rectangle width\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Number"
              ],
              "description": " The rectangle height\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a circle.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "x",
          "types": [
            "Number"
          ],
          "description": " The x coord\n\n     "
        },
        {
          "name": "y",
          "types": [
            "Number"
          ],
          "description": " The y coord\n\n     "
        },
        {
          "name": "width",
          "types": [
            "Number"
          ],
          "description": " The rectangle width\n\n     "
        },
        {
          "name": "height",
          "types": [
            "Number"
          ],
          "description": " The rectangle height\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.Graphics",
          "description": " A graphic object representing a circle.\n\n     "
        }
      ],
      "description": "Create a rectangle for use in PIXI stage",
      "short_description": "Create a rectangle for use in PIXI stage",
      "line": 382,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "createRect",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.createRect",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
    },
    "PixiRenderer#createPolygon": {
      "id": "PixiRenderer#createPolygon",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "verts",
              "types": [
                "Array"
              ],
              "description": " Array of [[Vectorish]] vertices\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a polygon.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "verts",
          "types": [
            "Array"
          ],
          "description": " Array of [[Vectorish]] vertices\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.Graphics",
          "description": " A graphic object representing a polygon.\n\n     "
        }
      ],
      "description": "Create a polygon for use in PIXI stage",
      "short_description": "Create a polygon for use in PIXI stage",
      "line": 399,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "createPolygon",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.createPolygon",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
    },
    "PixiRenderer#createLine": {
      "id": "PixiRenderer#createLine",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "from",
              "types": [
                "Vectorish"
              ],
              "description": " Starting point\n\n     "
            },
            {
              "name": "to",
              "types": [
                "Vectorish"
              ],
              "description": " Ending point\n\n     "
            },
            {
              "name": "styles",
              "types": [
                "Object"
              ],
              "description": " The styles configuration\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.Graphics",
              "description": " A graphic object representing a polygon.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "from",
          "types": [
            "Vectorish"
          ],
          "description": " Starting point\n\n     "
        },
        {
          "name": "to",
          "types": [
            "Vectorish"
          ],
          "description": " Ending point\n\n     "
        },
        {
          "name": "styles",
          "types": [
            "Object"
          ],
          "description": " The styles configuration\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.Graphics",
          "description": " A graphic object representing a polygon.\n\n     "
        }
      ],
      "description": "Create a line for use in PIXI stage",
      "short_description": "Create a line for use in PIXI stage",
      "line": 441,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "createLine",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.createLine",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
    },
    "PixiRenderer#createDisplay": {
      "id": "PixiRenderer#createDisplay",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "type",
              "types": [
                "String"
              ],
              "description": " The type of PIXI.DisplayObject to make\n\n     "
            },
            {
              "name": "options",
              "types": [
                "Object"
              ],
              "description": " Options to apply to the view.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "PIXI.DisplayObject",
              "description": " An object that is renderable.\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "type",
          "types": [
            "String"
          ],
          "description": " The type of PIXI.DisplayObject to make\n\n     "
        },
        {
          "name": "options",
          "types": [
            "Object"
          ],
          "description": " Options to apply to the view.\n\n     "
        }
      ],
      "returns": [
        {
          "type": "PIXI.DisplayObject",
          "description": " An object that is renderable.\n\n     "
        }
      ],
      "description": "Create a PIXI sprite or movie clip.",
      "short_description": "Create a PIXI sprite or movie clip.",
      "line": 563,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "createDisplay",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.createDisplay",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
    },
    "PixiRenderer#centerAnchor": {
      "id": "PixiRenderer#centerAnchor",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "view",
              "types": [
                "PIXI.DisplayObject"
              ],
              "description": " The view to center\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "view",
          "types": [
            "PIXI.DisplayObject"
          ],
          "description": " The view to center\n\n     "
        }
      ],
      "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
      "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
      "line": 622,
      "aliases": [],
      "children": [],
      "file": "src/renderers/pixi-renderer.js",
      "name": "centerAnchor",
      "name_prefix": "PixiRenderer#",
      "path": "PixiRenderer.prototype.centerAnchor",
      "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
    },
    "Physics.util.decorator": {
      "id": "Physics.util.decorator",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "type",
              "types": [
                "String"
              ],
              "description": " The name of the factory you are creating\n\n "
            },
            {
              "name": "protoDef",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The top-level prototype\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The factory function\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "type",
          "types": [
            "String"
          ],
          "description": " The name of the factory you are creating\n\n "
        },
        {
          "name": "protoDef",
          "types": [
            "Object"
          ],
          "description": " The top-level prototype\n\n "
        }
      ],
      "returns": [
        {
          "type": "Function",
          "description": " The factory function\n\n "
        }
      ],
      "related_to": "factory",
      "description": "Facilitates creation of decorator factory functions.\n\nSee the [[factory]] definition for the factory signatures.\n[For full documentation and examples, please visit the wiki](https://github.com/wellcaffeinated/PhysicsJS/wiki/Fundamentals#the-factory-pattern).\n\nExample:\n\n```javascript\nvar factory = Physics.util.decorator('factory', {\n     // prototype methods...\n     method: function( args ){\n     }\n});\n\n// define\nfactory( 'name', 'parent-name', function( parent ){\n\n     // extend further...\n     return {\n         // overrides\n         init: function( cfg ){\n             parent.init.call(this, cfg);\n         }\n     };\n});\n\n// instantiate\nvar options = { key: 'val' };\nvar instance = factory( 'name', options );\n```",
      "short_description": "Facilitates creation of decorator factory functions.\n",
      "line": 38,
      "aliases": [],
      "children": [
        {
          "id": "factory",
          "type": "method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": "  The class name\n\n "
                },
                {
                  "name": "parentName",
                  "optional": true,
                  "types": [
                    "String"
                  ],
                  "description": " The name of parent class to extend\n\n "
                },
                {
                  "name": "decorator",
                  "types": [
                    "Function"
                  ],
                  "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                },
                {
                  "name": "cfg",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration to pass to the class initializer\n\n "
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": "  The class name\n\n "
                },
                {
                  "name": "cfg",
                  "types": [
                    "Object"
                  ],
                  "description": " The configuration to pass to the class initializer\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Object"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": "  The class name\n\n "
            },
            {
              "name": "parentName",
              "types": [
                "String"
              ],
              "description": " The name of parent class to extend\n\n "
            },
            {
              "name": "decorator",
              "types": [
                "Function"
              ],
              "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
            },
            {
              "name": "cfg",
              "types": [
                "Object"
              ],
              "description": " The configuration to pass to the class initializer\n\n "
            }
          ],
          "belongs_to": "Physics.util.decorator",
          "description": "Factory function for definition and instantiation of subclasses.\n\nUse the first signature (once) to define it first.\nIf defining without the \"cfg\" parameter, void will be returned. Otherwise the class instance will be returned.\n\nSee [[Physics.util.decorator]] for more information.",
          "short_description": "Factory function for definition and instantiation of subclasses.\n",
          "line": 129,
          "aliases": [],
          "children": [],
          "file": "src/util/decorator.js",
          "name": "factory",
          "path": "factory",
          "outFile": "decorator.html#factory"
        }
      ],
      "file": "src/util/decorator.js",
      "name": "decorator",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.decorator",
      "outFile": "decorator.html#Physics.util.decorator"
    },
    "factory": {
      "id": "factory",
      "type": "method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": "  The class name\n\n "
            },
            {
              "name": "parentName",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " The name of parent class to extend\n\n "
            },
            {
              "name": "decorator",
              "types": [
                "Function"
              ],
              "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
            },
            {
              "name": "cfg",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The configuration to pass to the class initializer\n\n "
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": "  The class name\n\n "
            },
            {
              "name": "cfg",
              "types": [
                "Object"
              ],
              "description": " The configuration to pass to the class initializer\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": "  The class name\n\n "
        },
        {
          "name": "parentName",
          "types": [
            "String"
          ],
          "description": " The name of parent class to extend\n\n "
        },
        {
          "name": "decorator",
          "types": [
            "Function"
          ],
          "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
        },
        {
          "name": "cfg",
          "types": [
            "Object"
          ],
          "description": " The configuration to pass to the class initializer\n\n "
        }
      ],
      "belongs_to": "Physics.util.decorator",
      "description": "Factory function for definition and instantiation of subclasses.\n\nUse the first signature (once) to define it first.\nIf defining without the \"cfg\" parameter, void will be returned. Otherwise the class instance will be returned.\n\nSee [[Physics.util.decorator]] for more information.",
      "short_description": "Factory function for definition and instantiation of subclasses.\n",
      "line": 129,
      "aliases": [],
      "children": [],
      "file": "src/util/decorator.js",
      "name": "factory",
      "path": "factory",
      "outFile": "decorator.html#factory"
    },
    "Physics.util.indexOf": {
      "id": "Physics.util.indexOf",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " The array to search\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to find\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " The index of `value` in the array OR `-1` if not found\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " The array to search\n\n "
        },
        {
          "name": "value",
          "types": [
            "Mixed"
          ],
          "description": " The value to find\n\n "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " The index of `value` in the array OR `-1` if not found\n\n "
        }
      ],
      "description": "Fast indexOf implementation.",
      "short_description": "Fast indexOf implementation.",
      "line": 9,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "indexOf",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.indexOf",
      "outFile": "helpers.html#Physics.util.indexOf"
    },
    "Physics.util.clearArray": {
      "id": "Physics.util.clearArray",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "arr",
              "types": [
                "Array"
              ],
              "description": " The array to clear\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array",
              "description": " The array passed in\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "arr",
          "types": [
            "Array"
          ],
          "description": " The array to clear\n\n "
        }
      ],
      "returns": [
        {
          "type": "Array",
          "description": " The array passed in\n\n "
        }
      ],
      "description": "Quickly clear an array.",
      "short_description": "Quickly clear an array.",
      "line": 33,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "clearArray",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.clearArray",
      "outFile": "helpers.html#Physics.util.clearArray"
    },
    "Physics.util.throttle": {
      "id": "Physics.util.throttle",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The function to throttle\n\n "
            },
            {
              "name": "delay",
              "types": [
                "Number"
              ],
              "description": " Time in milliseconds\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The function to throttle\n\n "
        },
        {
          "name": "delay",
          "types": [
            "Number"
          ],
          "description": " Time in milliseconds\n\n "
        }
      ],
      "description": "Ensure a function is only called once every specified time span.",
      "short_description": "Ensure a function is only called once every specified time span.",
      "line": 48,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "throttle",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.throttle",
      "outFile": "helpers.html#Physics.util.throttle"
    },
    "Physics.util.options": {
      "id": "Physics.util.options",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "def",
              "types": [
                "Object"
              ],
              "description": " Default options to set\n\n "
            },
            {
              "name": "target",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " Where to copy the options to. Defaults to the returned function.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The options function\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "def",
          "types": [
            "Object"
          ],
          "description": " Default options to set\n\n "
        },
        {
          "name": "target",
          "types": [
            "Object"
          ],
          "description": " Where to copy the options to. Defaults to the returned function.\n\n "
        }
      ],
      "returns": [
        {
          "type": "Function",
          "description": " The options function\n\n "
        }
      ],
      "description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n\nExample:\n\n```javascript\nthis.options = Physics.util.options({ foo: 'bar', opt: 'def' });\nthis.options({ opt: 'myVal' });\n\nthis.options.foo; // === 'bar'\nthis.options.def; // === 'myVal'\n\n// can also change defaults later\nthis.options.defaults({ foo: 'baz' });\n\n// can add a change callback\nthis.options.onChange(function( opts ){\n    // some option changed\n    // opts is the target\n});\n```",
      "short_description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n",
      "line": 102,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "options",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.options",
      "outFile": "helpers.html#Physics.util.options"
    },
    "Physics.util.pairHash": {
      "id": "Physics.util.pairHash",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "id1",
              "types": [
                "Number"
              ],
              "description": " The id of the first thing\n\n "
            },
            {
              "name": "id2",
              "types": [
                "Number"
              ],
              "description": " The id of the second thing\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number",
              "description": " A unique numeric hash (valid for values < 2^16)\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "id1",
          "types": [
            "Number"
          ],
          "description": " The id of the first thing\n\n "
        },
        {
          "name": "id2",
          "types": [
            "Number"
          ],
          "description": " The id of the second thing\n\n "
        }
      ],
      "returns": [
        {
          "type": "Number",
          "description": " A unique numeric hash (valid for values < 2^16)\n\n "
        }
      ],
      "description": "Generate a unique numeric hash from two input IDs.\n\nUseful for speedy indexing of pairs.",
      "short_description": "Generate a unique numeric hash from two input IDs.\n",
      "line": 157,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "pairHash",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.pairHash",
      "outFile": "helpers.html#Physics.util.pairHash"
    },
    "Physics.util.bind": {
      "id": "Physics.util.bind",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The function to bind scope to\n\n "
            },
            {
              "name": "scope",
              "types": [
                "Object"
              ],
              "description": " The scope to give to `fn`\n\n "
            },
            {
              "name": "args",
              "ellipsis": true,
              "optional": true,
              "types": [
                "Mixed"
              ],
              "description": " Arguments to send to `fn`\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The function to bind scope to\n\n "
        },
        {
          "name": "scope",
          "types": [
            "Object"
          ],
          "description": " The scope to give to `fn`\n\n "
        },
        {
          "name": "args",
          "types": [
            "Mixed"
          ],
          "description": " Arguments to send to `fn`\n\n "
        }
      ],
      "description": "Bind a scope to a function.\n\nBasically the same functionality as [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).",
      "short_description": "Bind a scope to a function.\n",
      "line": 183,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "bind",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.bind",
      "outFile": "helpers.html#Physics.util.bind"
    },
    "Physics.util.find": {
      "id": "Physics.util.find",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " Collection of values to test\n\n "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "value",
                  "description": " The value to test\n\n ",
                  "types": [
                    "Mixed"
                  ]
                },
                {
                  "name": "index",
                  "description": " The index of value in collection\n\n ",
                  "types": [
                    "Number"
                  ]
                },
                {
                  "name": "collection",
                  "description": " Collection of values to test\n\n ",
                  "types": [
                    "Array"
                  ]
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The test function\n\n "
            }
          ],
          "returns": [
            {
              "type": "Mixed"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "collection",
          "types": [
            "Array"
          ],
          "description": " Collection of values to test\n\n "
        },
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The test function\n\n "
        },
        {
          "name": "value",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        },
        {
          "name": "index",
          "types": [
            "Number"
          ],
          "description": " The index of value in collection\n\n "
        },
        {
          "name": "collection",
          "types": [
            "Array"
          ],
          "description": " The input collection\n\n "
        }
      ],
      "description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
      "short_description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
      "line": 209,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "find",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.find",
      "outFile": "helpers.html#Physics.util.find"
    },
    "Physics.util.filter": {
      "id": "Physics.util.filter",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "collection",
              "types": [
                "Array"
              ],
              "description": " Collection of values to test\n\n "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "value",
                  "description": " The value to test\n\n ",
                  "types": [
                    "Mixed"
                  ]
                },
                {
                  "name": "index",
                  "description": " The index of value in collection\n\n ",
                  "types": [
                    "Number"
                  ]
                },
                {
                  "name": "collection",
                  "description": " Collection of values to test\n\n ",
                  "types": [
                    "Array"
                  ]
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The test function\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "collection",
          "types": [
            "Array"
          ],
          "description": " Collection of values to test\n\n "
        },
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The test function\n\n "
        },
        {
          "name": "value",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        },
        {
          "name": "index",
          "types": [
            "Number"
          ],
          "description": " The index of value in collection\n\n "
        },
        {
          "name": "collection",
          "types": [
            "Array"
          ],
          "description": " The input collection\n\n "
        }
      ],
      "description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
      "short_description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
      "line": 235,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "filter",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.filter",
      "outFile": "helpers.html#Physics.util.filter"
    },
    "Physics.util.uniqueId": {
      "id": "Physics.util.uniqueId",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "prefix",
              "optional": true,
              "types": [
                "String"
              ],
              "description": " Prefix to the id\n\n "
            }
          ],
          "returns": [
            {
              "type": "String"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "prefix",
          "types": [
            "String"
          ],
          "description": " Prefix to the id\n\n "
        }
      ],
      "description": "Generate a unique id, optionally prefixed.",
      "short_description": "Generate a unique id, optionally prefixed.",
      "line": 419,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "uniqueId",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.uniqueId",
      "outFile": "helpers.html#Physics.util.uniqueId"
    },
    "Physics.util.isObject": {
      "id": "Physics.util.isObject",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "val",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        }
      ],
      "description": "Test if a value is an object.",
      "short_description": "Test if a value is an object.",
      "line": 476,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "isObject",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.isObject",
      "outFile": "helpers.html#Physics.util.isObject"
    },
    "Physics.util.isFunction": {
      "id": "Physics.util.isFunction",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "val",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        }
      ],
      "description": "Test if a value is a function.",
      "short_description": "Test if a value is a function.",
      "line": 494,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "isFunction",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.isFunction",
      "outFile": "helpers.html#Physics.util.isFunction"
    },
    "Physics.util.isArray": {
      "id": "Physics.util.isArray",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "val",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        }
      ],
      "description": "Test if a value is an array.",
      "short_description": "Test if a value is an array.",
      "line": 502,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "isArray",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.isArray",
      "outFile": "helpers.html#Physics.util.isArray"
    },
    "Physics.util.isPlainObject": {
      "id": "Physics.util.isPlainObject",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " The value to test\n\n "
            }
          ],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "val",
          "types": [
            "Mixed"
          ],
          "description": " The value to test\n\n "
        }
      ],
      "description": "Test if a value is a plain javascript object.",
      "short_description": "Test if a value is a plain javascript object.",
      "line": 540,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "isPlainObject",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.isPlainObject",
      "outFile": "helpers.html#Physics.util.isPlainObject"
    },
    "Physics.util.uniq": {
      "id": "Physics.util.uniq",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "array",
              "types": [
                "Array"
              ],
              "description": " The array\n\n "
            },
            {
              "name": "isSorted",
              "optional": true,
              "types": [
                "Boolean"
              ],
              "description": " Flag to indicate the array is sorted\n\n "
            },
            {
              "name": "callback",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " Mapping function\n\n "
            }
          ],
          "returns": [
            {
              "type": "Array"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "array",
          "types": [
            "Array"
          ],
          "description": " The array\n\n "
        },
        {
          "name": "isSorted",
          "types": [
            "Boolean"
          ],
          "description": " Flag to indicate the array is sorted\n\n "
        },
        {
          "name": "callback",
          "types": [
            "Function"
          ],
          "description": " Mapping function\n\n "
        }
      ],
      "description": "Create an array without duplicates.",
      "short_description": "Create an array without duplicates.",
      "line": 597,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "uniq",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.uniq",
      "outFile": "helpers.html#Physics.util.uniq"
    },
    "Physics.util.extend": {
      "id": "Physics.util.extend",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "object",
              "types": [
                "Object"
              ],
              "description": " The destination object\n\n "
            },
            {
              "name": "source",
              "ellipsis": true,
              "types": [
                "Object"
              ],
              "description": " The source objects\n\n "
            },
            {
              "name": "callback",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " The function to customize assigning values\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "object",
          "types": [
            "Object"
          ],
          "description": " The destination object\n\n "
        },
        {
          "name": "source",
          "types": [
            "Object"
          ],
          "description": " The source objects\n\n "
        },
        {
          "name": "callback",
          "types": [
            "Function"
          ],
          "description": " The function to customize assigning values\n\n "
        }
      ],
      "description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
      "short_description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
      "line": 640,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "extend",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.extend",
      "outFile": "helpers.html#Physics.util.extend"
    },
    "Physics.util.defaults": {
      "id": "Physics.util.defaults",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "object",
              "types": [
                "Object"
              ],
              "description": " The destination object\n\n "
            },
            {
              "name": "source",
              "ellipsis": true,
              "types": [
                "Object"
              ],
              "description": " The source objects\n\n "
            },
            {
              "name": "callback",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " The function to customize assigning values\n\n "
            }
          ],
          "returns": [
            {
              "type": "Object"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "object",
          "types": [
            "Object"
          ],
          "description": " The destination object\n\n "
        },
        {
          "name": "source",
          "types": [
            "Object"
          ],
          "description": " The source objects\n\n "
        },
        {
          "name": "callback",
          "types": [
            "Function"
          ],
          "description": " The function to customize assigning values\n\n "
        }
      ],
      "description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
      "short_description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
      "line": 650,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "defaults",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.defaults",
      "outFile": "helpers.html#Physics.util.defaults"
    },
    "Physics.util.sortedIndex": {
      "id": "Physics.util.sortedIndex",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "array",
              "types": [
                "Array"
              ],
              "description": " The array to inspect\n\n "
            },
            {
              "name": "value",
              "types": [
                "Mixed"
              ],
              "description": " The value to evaluate\n\n "
            },
            {
              "name": "callback",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " Function called per iteration\n\n "
            }
          ],
          "returns": [
            {
              "type": "Number"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "array",
          "types": [
            "Array"
          ],
          "description": " The array to inspect\n\n "
        },
        {
          "name": "value",
          "types": [
            "Mixed"
          ],
          "description": " The value to evaluate\n\n "
        },
        {
          "name": "callback",
          "types": [
            "Function"
          ],
          "description": " Function called per iteration\n\n "
        }
      ],
      "description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
      "short_description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
      "line": 682,
      "aliases": [],
      "children": [],
      "file": "src/util/helpers.js",
      "name": "sortedIndex",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.sortedIndex",
      "outFile": "helpers.html#Physics.util.sortedIndex"
    },
    "Physics.noConflict": {
      "id": "Physics.noConflict",
      "type": "class method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Physics"
            }
          ]
        }
      ],
      "description": "Restore the original reference to the global window.Physics variable.\n\nDoes nothing if PhysicsJS doesn't have a reference in global scope",
      "short_description": "Restore the original reference to the global window.Physics variable.\n",
      "line": 12,
      "aliases": [],
      "children": [],
      "file": "src/util/noconflict.js",
      "name": "noConflict",
      "name_prefix": "Physics.",
      "path": "Physics.noConflict",
      "outFile": "noconflict.html#Physics.noConflict"
    },
    "Physics.util.pubsub": {
      "id": "Physics.util.pubsub",
      "type": "class",
      "description": "Fast pubsub implementation.\n\nCan be mixed into other classes easily.",
      "short_description": "Fast pubsub implementation.\n",
      "line": 19,
      "aliases": [],
      "children": [
        {
          "id": "Physics.util.pubsub#emit",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "data",
                  "optional": true,
                  "types": [
                    "Mixed"
                  ],
                  "description": " The data to send\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "data",
              "types": [
                "Mixed"
              ],
              "description": " The data to send\n\n     "
            }
          ],
          "description": "Publish data to a topic.",
          "short_description": "Publish data to a topic.",
          "line": 160,
          "aliases": [],
          "children": [],
          "file": "src/util/pubsub.js",
          "name": "emit",
          "name_prefix": "Physics.util.pubsub#",
          "path": "Physics.util.pubsub.prototype.emit",
          "outFile": "pubsub.html#Physics.util.pubsub.prototype.emit"
        },
        {
          "id": "Physics.util.pubsub#off",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                },
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                },
                {
                  "name": "scope",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "topicCfg",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
            },
            {
              "name": "topicCfg",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
            },
            {
              "name": "scope",
              "types": [
                "Object"
              ],
              "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
            }
          ],
          "description": "Unsubscribe callback(s) from topic(s).",
          "short_description": "Unsubscribe callback(s) from topic(s).",
          "line": 96,
          "aliases": [],
          "children": [],
          "file": "src/util/pubsub.js",
          "name": "off",
          "name_prefix": "Physics.util.pubsub#",
          "path": "Physics.util.pubsub.prototype.off",
          "outFile": "pubsub.html#Physics.util.pubsub.prototype.off"
        },
        {
          "id": "Physics.util.pubsub#on",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "data"
                    },
                    {
                      "name": "event"
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function (if not using Object as previous argument)\n\n     "
                },
                {
                  "name": "scope",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "topicConfig",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                },
                {
                  "name": "scope",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "topicConfig",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The callback function (if not using Object as previous argument)\n\n     "
            },
            {
              "name": "data",
              "types": [
                "Mixed"
              ],
              "description": " The data sent from the call to `.emit()`\n\n     "
            },
            {
              "name": "event",
              "types": [
                "Object"
              ],
              "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
            },
            {
              "name": "scope",
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "description": "Subscribe callback(s) to a topic(s).",
          "short_description": "Subscribe callback(s) to a topic(s).",
          "line": 41,
          "aliases": [],
          "children": [],
          "file": "src/util/pubsub.js",
          "name": "on",
          "name_prefix": "Physics.util.pubsub#",
          "path": "Physics.util.pubsub.prototype.on",
          "outFile": "pubsub.html#Physics.util.pubsub.prototype.on"
        },
        {
          "id": "Physics.util.pubsub#one",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "topic",
                  "types": [
                    "String"
                  ],
                  "description": " The topic name\n\n     "
                },
                {
                  "name": "fn",
                  "arguments": [
                    {
                      "name": "data"
                    },
                    {
                      "name": "event"
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function (if not using Object as previous argument)\n\n     "
                },
                {
                  "name": "scope",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            },
            {
              "arguments": [
                {
                  "name": "topicConfig",
                  "types": [
                    "Object"
                  ],
                  "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                },
                {
                  "name": "scope",
                  "optional": true,
                  "types": [
                    "Object"
                  ],
                  "description": " The scope to bind callback to\n\n     "
                },
                {
                  "name": "priority",
                  "optional": true,
                  "types": [
                    "Number"
                  ],
                  "description": " The priority of the callback (higher is earlier)\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "topicConfig",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The callback function (if not using Object as previous argument)\n\n     "
            },
            {
              "name": "data",
              "types": [
                "Mixed"
              ],
              "description": " The data sent from the call to `.emit()`\n\n     "
            },
            {
              "name": "event",
              "types": [
                "Object"
              ],
              "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
            },
            {
              "name": "scope",
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "description": "Subscribe callback(s) to a topic(s), but only ONCE.",
          "short_description": "Subscribe callback(s) to a topic(s), but only ONCE.",
          "line": 211,
          "aliases": [],
          "children": [],
          "file": "src/util/pubsub.js",
          "name": "one",
          "name_prefix": "Physics.util.pubsub#",
          "path": "Physics.util.pubsub.prototype.one",
          "outFile": "pubsub.html#Physics.util.pubsub.prototype.one"
        }
      ],
      "file": "src/util/pubsub.js",
      "subclasses": [],
      "name": "pubsub",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.pubsub",
      "outFile": "pubsub.html"
    },
    "Physics.util.pubsub#on": {
      "id": "Physics.util.pubsub#on",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "data"
                },
                {
                  "name": "event"
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The callback function (if not using Object as previous argument)\n\n     "
            },
            {
              "name": "scope",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "topicConfig",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            },
            {
              "name": "scope",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "topic",
          "types": [
            "String"
          ],
          "description": " The topic name\n\n     "
        },
        {
          "name": "topicConfig",
          "types": [
            "Object"
          ],
          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
        },
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The callback function (if not using Object as previous argument)\n\n     "
        },
        {
          "name": "data",
          "types": [
            "Mixed"
          ],
          "description": " The data sent from the call to `.emit()`\n\n     "
        },
        {
          "name": "event",
          "types": [
            "Object"
          ],
          "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
        },
        {
          "name": "scope",
          "types": [
            "Object"
          ],
          "description": " The scope to bind callback to\n\n     "
        },
        {
          "name": "priority",
          "types": [
            "Number"
          ],
          "description": " The priority of the callback (higher is earlier)\n\n     "
        }
      ],
      "description": "Subscribe callback(s) to a topic(s).",
      "short_description": "Subscribe callback(s) to a topic(s).",
      "line": 41,
      "aliases": [],
      "children": [],
      "file": "src/util/pubsub.js",
      "name": "on",
      "name_prefix": "Physics.util.pubsub#",
      "path": "Physics.util.pubsub.prototype.on",
      "outFile": "pubsub.html#Physics.util.pubsub.prototype.on"
    },
    "Physics.util.pubsub#off": {
      "id": "Physics.util.pubsub#off",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
            },
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
            },
            {
              "name": "scope",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "topicCfg",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "topic",
          "types": [
            "String"
          ],
          "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
        },
        {
          "name": "topicCfg",
          "types": [
            "Object"
          ],
          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
        },
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
        },
        {
          "name": "scope",
          "types": [
            "Object"
          ],
          "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
        }
      ],
      "description": "Unsubscribe callback(s) from topic(s).",
      "short_description": "Unsubscribe callback(s) from topic(s).",
      "line": 96,
      "aliases": [],
      "children": [],
      "file": "src/util/pubsub.js",
      "name": "off",
      "name_prefix": "Physics.util.pubsub#",
      "path": "Physics.util.pubsub.prototype.off",
      "outFile": "pubsub.html#Physics.util.pubsub.prototype.off"
    },
    "Physics.util.pubsub#emit": {
      "id": "Physics.util.pubsub#emit",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "data",
              "optional": true,
              "types": [
                "Mixed"
              ],
              "description": " The data to send\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "topic",
          "types": [
            "String"
          ],
          "description": " The topic name\n\n     "
        },
        {
          "name": "data",
          "types": [
            "Mixed"
          ],
          "description": " The data to send\n\n     "
        }
      ],
      "description": "Publish data to a topic.",
      "short_description": "Publish data to a topic.",
      "line": 160,
      "aliases": [],
      "children": [],
      "file": "src/util/pubsub.js",
      "name": "emit",
      "name_prefix": "Physics.util.pubsub#",
      "path": "Physics.util.pubsub.prototype.emit",
      "outFile": "pubsub.html#Physics.util.pubsub.prototype.emit"
    },
    "Physics.util.pubsub#one": {
      "id": "Physics.util.pubsub#one",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "topic",
              "types": [
                "String"
              ],
              "description": " The topic name\n\n     "
            },
            {
              "name": "fn",
              "arguments": [
                {
                  "name": "data"
                },
                {
                  "name": "event"
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The callback function (if not using Object as previous argument)\n\n     "
            },
            {
              "name": "scope",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        },
        {
          "arguments": [
            {
              "name": "topicConfig",
              "types": [
                "Object"
              ],
              "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
            },
            {
              "name": "scope",
              "optional": true,
              "types": [
                "Object"
              ],
              "description": " The scope to bind callback to\n\n     "
            },
            {
              "name": "priority",
              "optional": true,
              "types": [
                "Number"
              ],
              "description": " The priority of the callback (higher is earlier)\n\n     "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "topic",
          "types": [
            "String"
          ],
          "description": " The topic name\n\n     "
        },
        {
          "name": "topicConfig",
          "types": [
            "Object"
          ],
          "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
        },
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " The callback function (if not using Object as previous argument)\n\n     "
        },
        {
          "name": "data",
          "types": [
            "Mixed"
          ],
          "description": " The data sent from the call to `.emit()`\n\n     "
        },
        {
          "name": "event",
          "types": [
            "Object"
          ],
          "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
        },
        {
          "name": "scope",
          "types": [
            "Object"
          ],
          "description": " The scope to bind callback to\n\n     "
        },
        {
          "name": "priority",
          "types": [
            "Number"
          ],
          "description": " The priority of the callback (higher is earlier)\n\n     "
        }
      ],
      "description": "Subscribe callback(s) to a topic(s), but only ONCE.",
      "short_description": "Subscribe callback(s) to a topic(s), but only ONCE.",
      "line": 211,
      "aliases": [],
      "children": [],
      "file": "src/util/pubsub.js",
      "name": "one",
      "name_prefix": "Physics.util.pubsub#",
      "path": "Physics.util.pubsub.prototype.one",
      "outFile": "pubsub.html#Physics.util.pubsub.prototype.one"
    },
    "Scratch": {
      "id": "Scratch",
      "type": "class",
      "belongs_to": "Physics.scratchpad",
      "description": "A scratchpad session.\n\nThis class keeps track of temporary objects used\nin this session and releases them when finished (call to `.done()`).\n\nUse this to retrieve temporary objects:\n- `.vector()`: retrieve a temporary [[Physics.vector]]\n- `.transform()`: retrieve a temporary [[Physics.transform]]\n\nSee [[Physics.scratchpad]] for more info.",
      "short_description": "A scratchpad session.\n",
      "line": 37,
      "aliases": [],
      "children": [
        {
          "id": "Scratch#done",
          "type": "instance method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "val",
                  "optional": true,
                  "types": [
                    "Mixed"
                  ],
                  "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Mixed",
                  "description": " Whatever you specified as `val`\n\n     "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "val",
              "types": [
                "Mixed"
              ],
              "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Mixed",
              "description": " Whatever you specified as `val`\n\n     "
            }
          ],
          "description": "Declare that your work is finished.\n\nRelease temp objects for use elsewhere. Must be called when immediate work is done.\n\nYou can wrap the return value in scratch.done() so that you don't forget to call it.\n\nExample:\n\n```javascript\nreturn scratch.done( myReturnValue );\n```",
          "short_description": "Declare that your work is finished.\n",
          "line": 68,
          "aliases": [],
          "children": [],
          "file": "src/util/scratchpad.js",
          "name": "done",
          "name_prefix": "Scratch#",
          "path": "Scratch.prototype.done",
          "outFile": "scratchpad.html#Scratch.prototype.done"
        }
      ],
      "file": "src/util/scratchpad.js",
      "subclasses": [],
      "name": "Scratch",
      "path": "Scratch",
      "outFile": "scratchpad.html"
    },
    "Scratch#done": {
      "id": "Scratch#done",
      "type": "instance method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "val",
              "optional": true,
              "types": [
                "Mixed"
              ],
              "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
            }
          ],
          "returns": [
            {
              "type": "Mixed",
              "description": " Whatever you specified as `val`\n\n     "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "val",
          "types": [
            "Mixed"
          ],
          "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
        }
      ],
      "returns": [
        {
          "type": "Mixed",
          "description": " Whatever you specified as `val`\n\n     "
        }
      ],
      "description": "Declare that your work is finished.\n\nRelease temp objects for use elsewhere. Must be called when immediate work is done.\n\nYou can wrap the return value in scratch.done() so that you don't forget to call it.\n\nExample:\n\n```javascript\nreturn scratch.done( myReturnValue );\n```",
      "short_description": "Declare that your work is finished.\n",
      "line": 68,
      "aliases": [],
      "children": [],
      "file": "src/util/scratchpad.js",
      "name": "done",
      "name_prefix": "Scratch#",
      "path": "Scratch.prototype.done",
      "outFile": "scratchpad.html#Scratch.prototype.done"
    },
    "Physics.scratchpad": {
      "id": "Physics.scratchpad",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "fn",
              "optional": true,
              "types": [
                "Function"
              ],
              "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
            },
            {
              "type": "Scratch",
              "description": " The scratch session.\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
        }
      ],
      "returns": [
        {
          "type": "Function",
          "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
        },
        {
          "type": "Scratch",
          "description": " The scratch session.\n\n "
        }
      ],
      "description": "Get a new scratch session to work from or wrap a function in a scratch session.\n\nCall `.done()` on it when finished.\n\nExample:\n\n```javascript\n// get a scratch session manually\nvar myAlg = function( scratch, arg1, arg2, ... ){\n    var scratch = Physics.scratchpad()\n    ,vec = scratch.vector().set( 0, 0 ) // need to reinitialize... it's recycled!\n    ;\n    // ...\n    return scratch.done( result );\n};\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```\n\nExample:\n\n```javascript\n// wrap a function in a scratch session\nvar myAlg = Physics.scratchpad(function( scratch, arg1, arg2, ... ){\n    var vec = scratch.vector().set( 0, 0 ); // need to reinitialize... it's recycled!\n    //...\n    return result;\n});\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```",
      "short_description": "Get a new scratch session to work from or wrap a function in a scratch session.\n",
      "line": 128,
      "aliases": [],
      "children": [
        {
          "id": "Physics.scratchpad.fn",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "fn",
                  "types": [
                    "Function"
                  ],
                  "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
                }
              ],
              "returns": [
                {
                  "type": "Function",
                  "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
            }
          ],
          "description": "Wrap a function in a scratch session.\n\nSame as calling `Physics.scratchpad( fn )` with a function specified.",
          "short_description": "Wrap a function in a scratch session.\n",
          "line": 152,
          "aliases": [],
          "children": [],
          "file": "src/util/scratchpad.js",
          "name": "fn",
          "name_prefix": "Physics.scratchpad.",
          "path": "Physics.scratchpad.fn",
          "outFile": "scratchpad.html#Physics.scratchpad.fn"
        },
        {
          "id": "Physics.scratchpad.register",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "name",
                  "types": [
                    "String"
                  ],
                  "description": " Name of the object class\n\n "
                },
                {
                  "name": "constructor",
                  "types": [
                    "Function"
                  ],
                  "description": " The object constructor\n\n "
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " Name of the object class\n\n "
            },
            {
              "name": "constructor",
              "types": [
                "Function"
              ],
              "description": " The object constructor\n\n "
            }
          ],
          "description": "Register a new object to be included in scratchpads.\n\nExample:\n\n```javascript\n// register a hypothetical vector class...\nPhysics.scratchpad.register('vector', Vector);\n```",
          "short_description": "Register a new object to be included in scratchpads.\n",
          "line": 186,
          "aliases": [],
          "children": [],
          "file": "src/util/scratchpad.js",
          "name": "register",
          "name_prefix": "Physics.scratchpad.",
          "path": "Physics.scratchpad.register",
          "outFile": "scratchpad.html#Physics.scratchpad.register"
        },
        {
          "id": "Scratch",
          "type": "class",
          "belongs_to": "Physics.scratchpad",
          "description": "A scratchpad session.\n\nThis class keeps track of temporary objects used\nin this session and releases them when finished (call to `.done()`).\n\nUse this to retrieve temporary objects:\n- `.vector()`: retrieve a temporary [[Physics.vector]]\n- `.transform()`: retrieve a temporary [[Physics.transform]]\n\nSee [[Physics.scratchpad]] for more info.",
          "short_description": "A scratchpad session.\n",
          "line": 37,
          "aliases": [],
          "children": [
            {
              "id": "Scratch#done",
              "type": "instance method",
              "signatures": [
                {
                  "arguments": [
                    {
                      "name": "val",
                      "optional": true,
                      "types": [
                        "Mixed"
                      ],
                      "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                    }
                  ],
                  "returns": [
                    {
                      "type": "Mixed",
                      "description": " Whatever you specified as `val`\n\n     "
                    }
                  ]
                }
              ],
              "arguments": [
                {
                  "name": "val",
                  "types": [
                    "Mixed"
                  ],
                  "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                }
              ],
              "returns": [
                {
                  "type": "Mixed",
                  "description": " Whatever you specified as `val`\n\n     "
                }
              ],
              "description": "Declare that your work is finished.\n\nRelease temp objects for use elsewhere. Must be called when immediate work is done.\n\nYou can wrap the return value in scratch.done() so that you don't forget to call it.\n\nExample:\n\n```javascript\nreturn scratch.done( myReturnValue );\n```",
              "short_description": "Declare that your work is finished.\n",
              "line": 68,
              "aliases": [],
              "children": [],
              "file": "src/util/scratchpad.js",
              "name": "done",
              "name_prefix": "Scratch#",
              "path": "Scratch.prototype.done",
              "outFile": "scratchpad.html#Scratch.prototype.done"
            }
          ],
          "file": "src/util/scratchpad.js",
          "subclasses": [],
          "name": "Scratch",
          "path": "Scratch",
          "outFile": "scratchpad.html"
        }
      ],
      "file": "src/util/scratchpad.js",
      "name": "scratchpad",
      "name_prefix": "Physics.",
      "path": "Physics.scratchpad",
      "outFile": "scratchpad.html#Physics.scratchpad"
    },
    "Physics.scratchpad.fn": {
      "id": "Physics.scratchpad.fn",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "fn",
              "types": [
                "Function"
              ],
              "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
            }
          ],
          "returns": [
            {
              "type": "Function",
              "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "fn",
          "types": [
            "Function"
          ],
          "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
        }
      ],
      "returns": [
        {
          "type": "Function",
          "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
        }
      ],
      "description": "Wrap a function in a scratch session.\n\nSame as calling `Physics.scratchpad( fn )` with a function specified.",
      "short_description": "Wrap a function in a scratch session.\n",
      "line": 152,
      "aliases": [],
      "children": [],
      "file": "src/util/scratchpad.js",
      "name": "fn",
      "name_prefix": "Physics.scratchpad.",
      "path": "Physics.scratchpad.fn",
      "outFile": "scratchpad.html#Physics.scratchpad.fn"
    },
    "Physics.scratchpad.register": {
      "id": "Physics.scratchpad.register",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "name",
              "types": [
                "String"
              ],
              "description": " Name of the object class\n\n "
            },
            {
              "name": "constructor",
              "types": [
                "Function"
              ],
              "description": " The object constructor\n\n "
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "name",
          "types": [
            "String"
          ],
          "description": " Name of the object class\n\n "
        },
        {
          "name": "constructor",
          "types": [
            "Function"
          ],
          "description": " The object constructor\n\n "
        }
      ],
      "description": "Register a new object to be included in scratchpads.\n\nExample:\n\n```javascript\n// register a hypothetical vector class...\nPhysics.scratchpad.register('vector', Vector);\n```",
      "short_description": "Register a new object to be included in scratchpads.\n",
      "line": 186,
      "aliases": [],
      "children": [],
      "file": "src/util/scratchpad.js",
      "name": "register",
      "name_prefix": "Physics.scratchpad.",
      "path": "Physics.scratchpad.register",
      "outFile": "scratchpad.html#Physics.scratchpad.register"
    },
    "Physics.util.ticker": {
      "id": "Physics.util.ticker",
      "type": "class",
      "description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n\nRequires window.requestAnimationFrame... so polyfill it if you need to.",
      "short_description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n",
      "line": 8,
      "aliases": [],
      "children": [
        {
          "id": "Physics.util.ticker.isActive",
          "type": "class method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "Boolean"
                }
              ]
            }
          ],
          "returns": [
            {
              "type": "Boolean",
              "description": " `true` if running, `false` otherwise.\n\n "
            }
          ],
          "description": "Determine if ticker is currently running.",
          "short_description": "Determine if ticker is currently running.",
          "line": 107,
          "aliases": [],
          "children": [],
          "file": "src/util/ticker.js",
          "name": "isActive",
          "name_prefix": "Physics.util.ticker.",
          "path": "Physics.util.ticker.isActive",
          "outFile": "ticker.html#Physics.util.ticker.isActive"
        },
        {
          "id": "Physics.util.ticker.off",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "listener",
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function previously bound\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "listener",
              "types": [
                "Function"
              ],
              "description": " The callback function previously bound\n\n "
            }
          ],
          "description": "Unsubscribe a callback from the ticker.",
          "short_description": "Unsubscribe a callback from the ticker.",
          "line": 95,
          "aliases": [],
          "children": [],
          "file": "src/util/ticker.js",
          "name": "off",
          "name_prefix": "Physics.util.ticker.",
          "path": "Physics.util.ticker.off",
          "outFile": "ticker.html#Physics.util.ticker.off"
        },
        {
          "id": "Physics.util.ticker.on",
          "type": "class method",
          "signatures": [
            {
              "arguments": [
                {
                  "name": "listener",
                  "arguments": [
                    {
                      "name": "time",
                      "description": " The current timestamp\n\n ",
                      "types": [
                        "Number"
                      ]
                    }
                  ],
                  "callback": true,
                  "types": [
                    "Function"
                  ],
                  "description": " The callback function\n\n "
                }
              ],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "arguments": [
            {
              "name": "listener",
              "types": [
                "Function"
              ],
              "description": " The callback function\n\n "
            },
            {
              "name": "time",
              "types": [
                "Number"
              ],
              "description": " The current timestamp\n\n "
            }
          ],
          "description": "Subscribe a callback to the ticker.",
          "short_description": "Subscribe a callback to the ticker.",
          "line": 83,
          "aliases": [],
          "children": [],
          "file": "src/util/ticker.js",
          "name": "on",
          "name_prefix": "Physics.util.ticker.",
          "path": "Physics.util.ticker.on",
          "outFile": "ticker.html#Physics.util.ticker.on"
        },
        {
          "id": "Physics.util.ticker.start",
          "type": "class method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Start the ticker",
          "short_description": "Start the ticker",
          "line": 59,
          "aliases": [],
          "children": [],
          "file": "src/util/ticker.js",
          "name": "start",
          "name_prefix": "Physics.util.ticker.",
          "path": "Physics.util.ticker.start",
          "outFile": "ticker.html#Physics.util.ticker.start"
        },
        {
          "id": "Physics.util.ticker.stop",
          "type": "class method",
          "signatures": [
            {
              "arguments": [],
              "returns": [
                {
                  "type": "this"
                }
              ]
            }
          ],
          "description": "Stop the ticker",
          "short_description": "Stop the ticker",
          "line": 70,
          "aliases": [],
          "children": [],
          "file": "src/util/ticker.js",
          "name": "stop",
          "name_prefix": "Physics.util.ticker.",
          "path": "Physics.util.ticker.stop",
          "outFile": "ticker.html#Physics.util.ticker.stop"
        }
      ],
      "file": "src/util/ticker.js",
      "subclasses": [],
      "name": "ticker",
      "name_prefix": "Physics.util.",
      "path": "Physics.util.ticker",
      "outFile": "ticker.html"
    },
    "Physics.util.ticker.start": {
      "id": "Physics.util.ticker.start",
      "type": "class method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Start the ticker",
      "short_description": "Start the ticker",
      "line": 59,
      "aliases": [],
      "children": [],
      "file": "src/util/ticker.js",
      "name": "start",
      "name_prefix": "Physics.util.ticker.",
      "path": "Physics.util.ticker.start",
      "outFile": "ticker.html#Physics.util.ticker.start"
    },
    "Physics.util.ticker.stop": {
      "id": "Physics.util.ticker.stop",
      "type": "class method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "description": "Stop the ticker",
      "short_description": "Stop the ticker",
      "line": 70,
      "aliases": [],
      "children": [],
      "file": "src/util/ticker.js",
      "name": "stop",
      "name_prefix": "Physics.util.ticker.",
      "path": "Physics.util.ticker.stop",
      "outFile": "ticker.html#Physics.util.ticker.stop"
    },
    "Physics.util.ticker.on": {
      "id": "Physics.util.ticker.on",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "listener",
              "arguments": [
                {
                  "name": "time",
                  "description": " The current timestamp\n\n ",
                  "types": [
                    "Number"
                  ]
                }
              ],
              "callback": true,
              "types": [
                "Function"
              ],
              "description": " The callback function\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "listener",
          "types": [
            "Function"
          ],
          "description": " The callback function\n\n "
        },
        {
          "name": "time",
          "types": [
            "Number"
          ],
          "description": " The current timestamp\n\n "
        }
      ],
      "description": "Subscribe a callback to the ticker.",
      "short_description": "Subscribe a callback to the ticker.",
      "line": 83,
      "aliases": [],
      "children": [],
      "file": "src/util/ticker.js",
      "name": "on",
      "name_prefix": "Physics.util.ticker.",
      "path": "Physics.util.ticker.on",
      "outFile": "ticker.html#Physics.util.ticker.on"
    },
    "Physics.util.ticker.off": {
      "id": "Physics.util.ticker.off",
      "type": "class method",
      "signatures": [
        {
          "arguments": [
            {
              "name": "listener",
              "types": [
                "Function"
              ],
              "description": " The callback function previously bound\n\n "
            }
          ],
          "returns": [
            {
              "type": "this"
            }
          ]
        }
      ],
      "arguments": [
        {
          "name": "listener",
          "types": [
            "Function"
          ],
          "description": " The callback function previously bound\n\n "
        }
      ],
      "description": "Unsubscribe a callback from the ticker.",
      "short_description": "Unsubscribe a callback from the ticker.",
      "line": 95,
      "aliases": [],
      "children": [],
      "file": "src/util/ticker.js",
      "name": "off",
      "name_prefix": "Physics.util.ticker.",
      "path": "Physics.util.ticker.off",
      "outFile": "ticker.html#Physics.util.ticker.off"
    },
    "Physics.util.ticker.isActive": {
      "id": "Physics.util.ticker.isActive",
      "type": "class method",
      "signatures": [
        {
          "arguments": [],
          "returns": [
            {
              "type": "Boolean"
            }
          ]
        }
      ],
      "returns": [
        {
          "type": "Boolean",
          "description": " `true` if running, `false` otherwise.\n\n "
        }
      ],
      "description": "Determine if ticker is currently running.",
      "short_description": "Determine if ticker is currently running.",
      "line": 107,
      "aliases": [],
      "children": [],
      "file": "src/util/ticker.js",
      "name": "isActive",
      "name_prefix": "Physics.util.ticker.",
      "path": "Physics.util.ticker.isActive",
      "outFile": "ticker.html#Physics.util.ticker.isActive"
    }
  },
  "tree": {
    "children": [
      {
        "id": "$and",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "first",
                "types": [
                  "Function"
                ],
                "description": " First function node. `first.next` should have the next function, and so on.\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "first",
            "types": [
              "Function"
            ],
            "description": " First function node. `first.next` should have the next function, and so on.\n\n "
          }
        ],
        "hide": true,
        "description": "Get an AND test function.",
        "short_description": "Get an AND test function.",
        "line": 162,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$and",
        "path": "$and",
        "outFile": "query.html#$and"
      },
      {
        "id": "$at",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "point",
                "types": [
                  "Vectorish"
                ],
                "description": " The point to check\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "point",
            "types": [
              "Vectorish"
            ],
            "description": " The point to check\n\n "
          }
        ],
        "hide": true,
        "description": "Get a test function to match any body who's aabb intersects point",
        "short_description": "Get a test function to match any body who's aabb intersects point",
        "line": 148,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$at",
        "path": "$at",
        "outFile": "query.html#$at"
      },
      {
        "id": "$eq",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "toMatch",
                "types": [
                  "Mixed"
                ],
                "description": " The value to match\n\n "
              },
              {
                "name": "prop",
                "optional": true,
                "types": [
                  "String"
                ],
                "description": " The property name to test\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "toMatch",
            "types": [
              "Mixed"
            ],
            "description": " The value to match\n\n "
          },
          {
            "name": "prop",
            "types": [
              "String"
            ],
            "description": " The property name to test\n\n "
          }
        ],
        "hide": true,
        "description": "Get an equality test function.",
        "short_description": "Get an equality test function.",
        "line": 31,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$eq",
        "path": "$eq",
        "outFile": "query.html#$eq"
      },
      {
        "id": "$in",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "toMatch",
                "types": [
                  "Array"
                ],
                "description": " The array to match\n\n "
              },
              {
                "name": "prop",
                "optional": true,
                "types": [
                  "String"
                ],
                "description": " The property name to test\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "toMatch",
            "types": [
              "Array"
            ],
            "description": " The array to match\n\n "
          },
          {
            "name": "prop",
            "types": [
              "String"
            ],
            "description": " The property name to test\n\n "
          }
        ],
        "hide": true,
        "description": "Get a test function for matching ANY in array",
        "short_description": "Get a test function for matching ANY in array",
        "line": 96,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$in",
        "path": "$in",
        "outFile": "query.html#$in"
      },
      {
        "id": "$ne",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "toMatch",
                "types": [
                  "Mixed"
                ],
                "description": " The value to match\n\n "
              },
              {
                "name": "prop",
                "optional": true,
                "types": [
                  "String"
                ],
                "description": " The property name to test\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "toMatch",
            "types": [
              "Mixed"
            ],
            "description": " The value to match\n\n "
          },
          {
            "name": "prop",
            "types": [
              "String"
            ],
            "description": " The property name to test\n\n "
          }
        ],
        "hide": true,
        "description": "Get a NOT equality test function.",
        "short_description": "Get a NOT equality test function.",
        "line": 82,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$ne",
        "path": "$ne",
        "outFile": "query.html#$ne"
      },
      {
        "id": "$nin",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "toMatch",
                "types": [
                  "Array"
                ],
                "description": " The array to match\n\n "
              },
              {
                "name": "prop",
                "optional": true,
                "types": [
                  "String"
                ],
                "description": " The property name to test\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "toMatch",
            "types": [
              "Array"
            ],
            "description": " The array to match\n\n "
          },
          {
            "name": "prop",
            "types": [
              "String"
            ],
            "description": " The property name to test\n\n "
          }
        ],
        "hide": true,
        "description": "Get a test function for matching NOT ANY in array",
        "short_description": "Get a test function for matching NOT ANY in array",
        "line": 135,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$nin",
        "path": "$nin",
        "outFile": "query.html#$nin"
      },
      {
        "id": "$or",
        "type": "utility",
        "signatures": [
          {
            "arguments": [
              {
                "name": "first",
                "types": [
                  "Function"
                ],
                "description": " First function node. `first.next` should have the next function, and so on.\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "first",
            "types": [
              "Function"
            ],
            "description": " First function node. `first.next` should have the next function, and so on.\n\n "
          }
        ],
        "hide": true,
        "description": "Get an OR test function.",
        "short_description": "Get an OR test function.",
        "line": 182,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "$or",
        "path": "$or",
        "outFile": "query.html#$or"
      },
      {
        "id": "getClosestPoints",
        "type": "method",
        "signatures": [
          {
            "arguments": [
              {
                "name": "simplex",
                "types": [
                  "Array"
                ],
                "description": " The simplex\n\n "
              }
            ],
            "returns": [
              {
                "type": "Object"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "simplex",
            "types": [
              "Array"
            ],
            "description": " The simplex\n\n "
          }
        ],
        "hide": true,
        "description": "Figure out the closest points on the original objects\nfrom the last two entries of the simplex",
        "short_description": "Figure out the closest points on the original objects\nfrom the last two entries of the simplex",
        "line": 43,
        "aliases": [],
        "children": [],
        "file": "src/math/gjk.js",
        "name": "getClosestPoints",
        "path": "getClosestPoints",
        "outFile": "gjk.html#getClosestPoints"
      },
      {
        "id": "Physics",
        "type": "namespace",
        "related_to": "Physics.world",
        "description": "The top-level namespace. All of PhysicsJS is contained in\nthe `Physics` namespace.\n\nIt may (and should) be invoked as a function to create a world instance. For all intensive purposes, [[Physics]] and [[Physics.world]] are the same thing.\n\nSee [[new Physics.world]] for config options and function signature.\n\nExample:\n\n```javascript\nPhysics( cfg, function( world ) {\n    // use world\n}); // -> world\n```",
        "short_description": "The top-level namespace. All of PhysicsJS is contained in\nthe `Physics` namespace.\n",
        "line": 37,
        "aliases": [
          "Physics.world.new"
        ],
        "children": [
          {
            "id": "Physics.aabb",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "minX",
                    "types": [
                      "Number"
                    ],
                    "description": " The x coord of the \"top left\" point\n\n "
                  },
                  {
                    "name": "minY",
                    "types": [
                      "Number"
                    ],
                    "description": " The y coord of the \"top left\" point\n\n "
                  },
                  {
                    "name": "maxX",
                    "types": [
                      "Number"
                    ],
                    "description": " The x coord of the \"bottom right\" point\n\n "
                  },
                  {
                    "name": "maxY",
                    "types": [
                      "Number"
                    ],
                    "description": " The y coord of the \"bottom right\" point\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object"
                  }
                ]
              },
              {
                "arguments": [
                  {
                    "name": "pt1",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The first corner\n\n "
                  },
                  {
                    "name": "pt2",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The opposite corner\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object"
                  }
                ]
              },
              {
                "arguments": [
                  {
                    "name": "width",
                    "types": [
                      "Number"
                    ],
                    "description": " The width of the bounding box\n\n "
                  },
                  {
                    "name": "height",
                    "types": [
                      "Number"
                    ],
                    "description": " The height of the bounding box\n\n "
                  },
                  {
                    "name": "pt",
                    "optional": true,
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The center point of the bounding box\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "minX",
                "types": [
                  "Number"
                ],
                "description": " The x coord of the \"top left\" point\n\n "
              },
              {
                "name": "minY",
                "types": [
                  "Number"
                ],
                "description": " The y coord of the \"top left\" point\n\n "
              },
              {
                "name": "maxX",
                "types": [
                  "Number"
                ],
                "description": " The x coord of the \"bottom right\" point\n\n "
              },
              {
                "name": "maxY",
                "types": [
                  "Number"
                ],
                "description": " The y coord of the \"bottom right\" point\n\n "
              },
              {
                "name": "pt1",
                "types": [
                  "Vectorish"
                ],
                "description": " The first corner\n\n "
              },
              {
                "name": "pt2",
                "types": [
                  "Vectorish"
                ],
                "description": " The opposite corner\n\n "
              },
              {
                "name": "width",
                "types": [
                  "Number"
                ],
                "description": " The width of the bounding box\n\n "
              },
              {
                "name": "height",
                "types": [
                  "Number"
                ],
                "description": " The height of the bounding box\n\n "
              },
              {
                "name": "pt",
                "types": [
                  "Vectorish"
                ],
                "description": " The center point of the bounding box\n\n "
              }
            ],
            "description": "Create an Axis Aligned Bounding Box.\n\nSignature:\n\n```javascript\n{\n    x: Number, // the x coord of the center point\n    y: Number, // the y coord of the center point\n    hw: Number, // the half-width\n    hh: Number, // the half-height\n}\n```",
            "short_description": "Create an Axis Aligned Bounding Box.\n",
            "line": 30,
            "aliases": [],
            "children": [
              {
                "id": "Physics.aabb.clone",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "aabb",
                        "types": [
                          "Object"
                        ],
                        "description": " The aabb to clone\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The clone\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "aabb",
                    "types": [
                      "Object"
                    ],
                    "description": " The aabb to clone\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object",
                    "description": " The clone\n\n "
                  }
                ],
                "description": "Clone an aabb.",
                "short_description": "Clone an aabb.",
                "line": 93,
                "aliases": [],
                "children": [],
                "file": "src/math/aabb.js",
                "name": "clone",
                "name_prefix": "Physics.aabb.",
                "path": "Physics.aabb.clone",
                "outFile": "aabb.html#Physics.aabb.clone"
              },
              {
                "id": "Physics.aabb.contains",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "aabb",
                        "types": [
                          "Object"
                        ],
                        "description": " The aabb\n\n "
                      },
                      {
                        "name": "pt",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The point\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "aabb",
                    "types": [
                      "Object"
                    ],
                    "description": " The aabb\n\n "
                  },
                  {
                    "name": "pt",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The point\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " `true` if `pt` is inside `aabb`, `false` otherwise\n\n "
                  }
                ],
                "description": "Check if a point is inside an aabb.",
                "short_description": "Check if a point is inside an aabb.",
                "line": 78,
                "aliases": [],
                "children": [],
                "file": "src/math/aabb.js",
                "name": "contains",
                "name_prefix": "Physics.aabb.",
                "path": "Physics.aabb.contains",
                "outFile": "aabb.html#Physics.aabb.contains"
              },
              {
                "id": "Physics.aabb.overlap",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "aabb1",
                        "types": [
                          "Object"
                        ],
                        "description": " The first aabb\n\n "
                      },
                      {
                        "name": "aabb2",
                        "types": [
                          "Object"
                        ],
                        "description": " The second aabb\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if they overlap, `false` otherwise\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "aabb1",
                    "types": [
                      "Object"
                    ],
                    "description": " The first aabb\n\n "
                  },
                  {
                    "name": "aabb2",
                    "types": [
                      "Object"
                    ],
                    "description": " The second aabb\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " `true` if they overlap, `false` otherwise\n\n "
                  }
                ],
                "description": "Check if two AABBs overlap.",
                "short_description": "Check if two AABBs overlap.",
                "line": 136,
                "aliases": [],
                "children": [],
                "file": "src/math/aabb.js",
                "name": "overlap",
                "name_prefix": "Physics.aabb.",
                "path": "Physics.aabb.overlap",
                "outFile": "aabb.html#Physics.aabb.overlap"
              },
              {
                "id": "Physics.aabb.union",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "aabb1",
                        "types": [
                          "Object"
                        ],
                        "description": " The first aabb (returned if modify is `true`)\n\n "
                      },
                      {
                        "name": "aabb2",
                        "types": [
                          "Object"
                        ],
                        "description": " The second aabb\n\n "
                      },
                      {
                        "name": "modify",
                        "optional": true
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "aabb1",
                    "types": [
                      "Object"
                    ],
                    "description": " The first aabb (returned if modify is `true`)\n\n "
                  },
                  {
                    "name": "aabb2",
                    "types": [
                      "Object"
                    ],
                    "description": " The second aabb\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object",
                    "description": " The union of two aabbs. If modify is `true`, then the first aabb will be modified and returned.\n\n "
                  }
                ],
                "description": "Get the union of two aabbs.",
                "short_description": "Get the union of two aabbs.",
                "line": 110,
                "aliases": [],
                "children": [],
                "file": "src/math/aabb.js",
                "name": "union",
                "name_prefix": "Physics.aabb.",
                "path": "Physics.aabb.union",
                "outFile": "aabb.html#Physics.aabb.union"
              }
            ],
            "file": "src/math/aabb.js",
            "name": "aabb",
            "name_prefix": "Physics.",
            "path": "Physics.aabb",
            "outFile": "aabb.html#Physics.aabb"
          },
          {
            "id": "Physics.behavior",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the behavior to create\n\n "
                  },
                  {
                    "name": "options",
                    "optional": true,
                    "types": [
                      "Object"
                    ],
                    "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Behavior"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "name",
                "types": [
                  "String"
                ],
                "description": " The name of the behavior to create\n\n "
              },
              {
                "name": "options",
                "types": [
                  "Object"
                ],
                "description": " The configuration for that behavior ( depends on behavior ).\n\n   Available options and defaults:\n\n   \n\n   ```javascript\n\n    {\n\n       priority: 0 // the priority of this body\n\n    }\n\n   ```\n\n "
              }
            ],
            "related_to": "Physics.util.decorator",
            "description": "Factory function for creating Behaviors.\n\nVisit [the PhysicsJS wiki on Behaviors](https://github.com/wellcaffeinated/PhysicsJS/wiki/Behaviors)\nfor usage documentation.",
            "short_description": "Factory function for creating Behaviors.\n",
            "line": 24,
            "aliases": [],
            "children": [
              {
                "id": "Behavior",
                "type": "class",
                "belongs_to": "Physics.behavior",
                "description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
                "short_description": "The base class for behaviors created by [[Physics.behavior]] factory function.",
                "line": 31,
                "aliases": [],
                "children": [
                  {
                    "id": "Behavior#applyTo",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "arr",
                            "types": [
                              "Array"
                            ],
                            "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "arr",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of bodies to apply this behavior to. Specify `true` for all objects in world.\n\n     "
                      }
                    ],
                    "description": "Apply the behavior to a group of bodies.",
                    "short_description": "Apply the behavior to a group of bodies.",
                    "line": 66,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "applyTo",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.applyTo",
                    "outFile": "behavior.html#Behavior.prototype.applyTo"
                  },
                  {
                    "id": "Behavior#behave",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " The pubsub `integrate:positions` event data\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "data",
                        "types": [
                          "Object"
                        ],
                        "description": " The pubsub `integrate:positions` event data\n\n     "
                      }
                    ],
                    "description": "Default method run on every world integration.\n\nYou _must_ extend this when creating a behavior,\nunless you extend the [[Behavior#connect]] and [[Behavior#disconnect]] methods.",
                    "short_description": "Default method run on every world integration.\n",
                    "line": 151,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "behave",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.behave",
                    "outFile": "behavior.html#Behavior.prototype.behave"
                  },
                  {
                    "id": "Behavior#connect",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Physics.world"
                            ],
                            "description": " The world to connect to\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Physics.world"
                        ],
                        "description": " The world to connect to\n\n     "
                      }
                    ],
                    "description": "Connect to a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
                    "short_description": "Connect to a world.\n",
                    "line": 119,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "connect",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.connect",
                    "outFile": "behavior.html#Behavior.prototype.connect"
                  },
                  {
                    "id": "Behavior#disconnect",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Physics.world"
                            ],
                            "description": " The world to disconnect from\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Physics.world"
                        ],
                        "description": " The world to disconnect from\n\n     "
                      }
                    ],
                    "description": "Disconnect from a world.\n\nExtend this when creating behaviors if you need to specify pubsub management.\nAutomatically called when added to world by the [[Behavior#setWorld]] method.",
                    "short_description": "Disconnect from a world.\n",
                    "line": 135,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "disconnect",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.disconnect",
                    "outFile": "behavior.html#Behavior.prototype.disconnect"
                  },
                  {
                    "id": "Behavior#getTargets",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "Array"
                          }
                        ]
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array",
                        "description": " The array of bodies (by reference!) this behavior is applied to.\n\n     "
                      }
                    ],
                    "description": "Get the array of bodies (by reference!) this behavior is applied to.",
                    "short_description": "Get the array of bodies (by reference!) this behavior is applied to.",
                    "line": 82,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "getTargets",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.getTargets",
                    "outFile": "behavior.html#Behavior.prototype.getTargets"
                  },
                  {
                    "id": "Behavior#init",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration options passed by the factory\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration options passed by the factory\n\n     "
                      }
                    ],
                    "internal": true,
                    "description": "Initialization. Internal use.",
                    "short_description": "Initialization. Internal use.",
                    "line": 38,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "init",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.init",
                    "outFile": "behavior.html#Behavior.prototype.init"
                  },
                  {
                    "id": "Behavior#options",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The options to set as an object\n\n         "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The options\n\n         "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The options to set as an object\n\n         "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The options\n\n         "
                      }
                    ],
                    "related_to": "Physics.util.options",
                    "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                    "short_description": "Set options on this instance.\n",
                    "line": 56,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "options",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.options",
                    "outFile": "behavior.html#Behavior.prototype.options"
                  },
                  {
                    "id": "Behavior#setWorld",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Object"
                            ],
                            "description": " The world (or null)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Object"
                        ],
                        "description": " The world (or null)\n\n     "
                      }
                    ],
                    "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                    "short_description": "Set which world to apply to.\n",
                    "line": 95,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/behavior.js",
                    "name": "setWorld",
                    "name_prefix": "Behavior#",
                    "path": "Behavior.prototype.setWorld",
                    "outFile": "behavior.html#Behavior.prototype.setWorld"
                  },
                  {
                    "id": "AttractorBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('attractor')`.\n\nAttractor behavior attracts bodies to a specific point.\n\nAdditional options include:\n- pos: The position of the attraction point\n- strength: How strong the attraction is (default: `1`)\n- order: The power of the inverse distance (default: `2` because that is newtonian gravity... inverse square)\n- max: The maximum distance in which to apply the attraction (default: Infinity)\n- min: The minimum distance above which to apply the attraction (default: very small non-zero)",
                    "short_description": "`Physics.behavior('attractor')`.\n",
                    "line": 15,
                    "aliases": [],
                    "children": [
                      {
                        "id": "AttractorBehavior#position",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "optional": true,
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " The position to set\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Object",
                                "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                              },
                              {
                                "type": "this",
                                "description": " For chaining\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "pos",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The position to set\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " Returns the [[Vectorish]] position if no arguments provided\n\n     "
                          },
                          {
                            "type": "this",
                            "description": " For chaining\n\n     "
                          }
                        ],
                        "description": "Get or set the position of the attractor.",
                        "short_description": "Get or set the position of the attractor.",
                        "line": 56,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/attractor.js",
                        "name": "position",
                        "name_prefix": "AttractorBehavior#",
                        "path": "AttractorBehavior.prototype.position",
                        "outFile": "attractor.html#AttractorBehavior.prototype.position"
                      }
                    ],
                    "file": "src/behaviors/attractor.js",
                    "subclasses": [],
                    "name": "AttractorBehavior",
                    "path": "AttractorBehavior",
                    "outFile": "attractor.html"
                  },
                  {
                    "id": "BodyCollisionDetectionBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('body-collision-detection')`.\n\nDetect collisions of bodies.\n\nPublishes collision events to the world as a group of detected collisions per iteration.\n\nThe event data will have a `.collisions` property that is an array of collisions of the form:\n\n```javascript\n{\n    bodyA: // the first body\n    bodyB: // the second body\n    norm: // the normal vector (Vectorish)\n    mtv: // the minimum transit vector. (the direction and length needed to extract bodyB from bodyA)\n    pos: // the collision point relative to bodyA\n    overlap: // the amount bodyA overlaps bodyB\n}\n```\n\nAdditional options include:\n- check: channel to listen to for collision candidates (default: `collisions:candidates`). set to `true` to force check every pair of bodies in the world\n- channel: channel to publish events to (default: `collisions:detected`)",
                    "short_description": "`Physics.behavior('body-collision-detection')`.\n",
                    "line": 27,
                    "aliases": [],
                    "children": [
                      {
                        "id": "BodyCollisionDetectionBehavior#check",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " The event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " The event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                        "short_description": "Event callback to check pairs of objects that have been flagged by broad phase for possible collisions.",
                        "line": 366,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/body-collision-detection.js",
                        "name": "check",
                        "name_prefix": "BodyCollisionDetectionBehavior#",
                        "path": "BodyCollisionDetectionBehavior.prototype.check",
                        "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.check"
                      },
                      {
                        "id": "BodyCollisionDetectionBehavior#checkAll",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " The event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " The event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to check all pairs of objects in the list for collisions",
                        "short_description": "Event callback to check all pairs of objects in the list for collisions",
                        "line": 428,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/body-collision-detection.js",
                        "name": "checkAll",
                        "name_prefix": "BodyCollisionDetectionBehavior#",
                        "path": "BodyCollisionDetectionBehavior.prototype.checkAll",
                        "outFile": "body-collision-detection.html#BodyCollisionDetectionBehavior.prototype.checkAll"
                      }
                    ],
                    "file": "src/behaviors/body-collision-detection.js",
                    "subclasses": [],
                    "name": "BodyCollisionDetectionBehavior",
                    "path": "BodyCollisionDetectionBehavior",
                    "outFile": "body-collision-detection.html"
                  },
                  {
                    "id": "BodyImpulseResponseBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('body-impulse-response')`.\n\nResponds to collisions by applying impulses.\n\nAdditional options include:\n- check: channel to listen to for collisions (default: `collisions:detected`).\n- mtvThreshold: apply partial extraction of bodies if the minimum transit vector is less than this value ( default: `1`)\n  this will depend on your simulation characteristic length scale\n- bodyExtractDropoff: every body overlap correction (underneith mtvThreshold) will only extract by this fraction (0..1). Helps with stablizing contacts. (default: `0.5`)\n- forceWakeupAboveOverlapThreshold: force bodies to wake up if the overlap is above mtvThreshold ( default: `true` )",
                    "short_description": "`Physics.behavior('body-impulse-response')`.\n",
                    "line": 15,
                    "aliases": [],
                    "children": [
                      {
                        "id": "BodyImpulseResponseBehavior#collideBodes",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "bodyA",
                                "types": [
                                  "Object"
                                ],
                                "description": " First Body\n\n     "
                              },
                              {
                                "name": "bodyB",
                                "types": [
                                  "Object"
                                ],
                                "description": " Second body\n\n     "
                              },
                              {
                                "name": "normal",
                                "types": [
                                  "Vector"
                                ],
                                "description": " Normal vector of the collision surface\n\n     "
                              },
                              {
                                "name": "point",
                                "types": [
                                  "Vector"
                                ],
                                "description": " Contact point of the collision\n\n     "
                              },
                              {
                                "name": "mtrans",
                                "types": [
                                  "Vector"
                                ],
                                "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                              },
                              {
                                "name": "contact",
                                "types": [
                                  "Boolean"
                                ],
                                "description": " Are the bodies in resting contact relative to each other\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "bodyA",
                            "types": [
                              "Object"
                            ],
                            "description": " First Body\n\n     "
                          },
                          {
                            "name": "bodyB",
                            "types": [
                              "Object"
                            ],
                            "description": " Second body\n\n     "
                          },
                          {
                            "name": "normal",
                            "types": [
                              "Vector"
                            ],
                            "description": " Normal vector of the collision surface\n\n     "
                          },
                          {
                            "name": "point",
                            "types": [
                              "Vector"
                            ],
                            "description": " Contact point of the collision\n\n     "
                          },
                          {
                            "name": "mtrans",
                            "types": [
                              "Vector"
                            ],
                            "description": " Minimum transit vector that is the smallest displacement to separate the bodies\n\n     "
                          },
                          {
                            "name": "contact",
                            "types": [
                              "Boolean"
                            ],
                            "description": " Are the bodies in resting contact relative to each other\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                        "short_description": "Collide two bodies by modifying their positions and velocities to conserve momentum",
                        "line": 88,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/body-impulse-response.js",
                        "name": "collideBodes",
                        "name_prefix": "BodyImpulseResponseBehavior#",
                        "path": "BodyImpulseResponseBehavior.prototype.collideBodes",
                        "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.collideBodes"
                      },
                      {
                        "id": "BodyImpulseResponseBehavior#respond",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to respond to collision data.",
                        "short_description": "Event callback to respond to collision data.",
                        "line": 281,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/body-impulse-response.js",
                        "name": "respond",
                        "name_prefix": "BodyImpulseResponseBehavior#",
                        "path": "BodyImpulseResponseBehavior.prototype.respond",
                        "outFile": "body-impulse-response.html#BodyImpulseResponseBehavior.prototype.respond"
                      }
                    ],
                    "file": "src/behaviors/body-impulse-response.js",
                    "subclasses": [],
                    "name": "BodyImpulseResponseBehavior",
                    "path": "BodyImpulseResponseBehavior",
                    "outFile": "body-impulse-response.html"
                  },
                  {
                    "id": "ConstantAccelerationBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('constant-acceleration')`.\n\nConstant acceleration behavior.\n\nBasically the \"gravity\" behavior. Used to give \"earth-like gravity\" to the world.\n\nAdditional options include:\n- acc: The acceleration vector (Vectorish). (default: `{ x: 0, y: 0.0004 }`)",
                    "short_description": "`Physics.behavior('constant-acceleration')`.\n",
                    "line": 13,
                    "aliases": [],
                    "children": [
                      {
                        "id": "ConstantAccelerationBehavior#setAcceleration",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "acc",
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " The acceleration vector\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "acc",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The acceleration vector\n\n     "
                          }
                        ],
                        "description": "Set the acceleration of the behavior.",
                        "short_description": "Set the acceleration of the behavior.",
                        "line": 41,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/constant-acceleration.js",
                        "name": "setAcceleration",
                        "name_prefix": "ConstantAccelerationBehavior#",
                        "path": "ConstantAccelerationBehavior.prototype.setAcceleration",
                        "outFile": "constant-acceleration.html#ConstantAccelerationBehavior.prototype.setAcceleration"
                      }
                    ],
                    "file": "src/behaviors/constant-acceleration.js",
                    "subclasses": [],
                    "name": "ConstantAccelerationBehavior",
                    "path": "ConstantAccelerationBehavior",
                    "outFile": "constant-acceleration.html"
                  },
                  {
                    "id": "EdgeCollisionDetectionBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('edge-collision-detection')`.\n\nUsed to detect collisions with the boundaries of an AABB.\n\nAdditional options include:\n- aabb: The [[Physics.aabb]] bounds to use as the constraining boundary\n- restitution: The restitution of the boundary walls (default: `0.99`)\n- cof: The coefficient of friction of the boundary walls (default: `1`)\n- channel: The channel to publish collisions to. (default: 'collisions:detected')",
                    "short_description": "`Physics.behavior('edge-collision-detection')`.\n",
                    "line": 14,
                    "aliases": [],
                    "children": [
                      {
                        "id": "EdgeCollisionDetectionBehavior#checkAll",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " Event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " Event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to check all bodies for collisions with the edge",
                        "short_description": "Event callback to check all bodies for collisions with the edge",
                        "line": 227,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/edge-collision-detection.js",
                        "name": "checkAll",
                        "name_prefix": "EdgeCollisionDetectionBehavior#",
                        "path": "EdgeCollisionDetectionBehavior.prototype.checkAll",
                        "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.checkAll"
                      },
                      {
                        "id": "EdgeCollisionDetectionBehavior#setAABB",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "aabb",
                                "types": [
                                  "Physics.aabb"
                                ],
                                "description": " The aabb to use as the boundary\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "aabb",
                            "types": [
                              "Physics.aabb"
                            ],
                            "description": " The aabb to use as the boundary\n\n     "
                          }
                        ],
                        "description": "Set the boundaries of the edge.",
                        "short_description": "Set the boundaries of the edge.",
                        "line": 189,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/edge-collision-detection.js",
                        "name": "setAABB",
                        "name_prefix": "EdgeCollisionDetectionBehavior#",
                        "path": "EdgeCollisionDetectionBehavior.prototype.setAABB",
                        "outFile": "edge-collision-detection.html#EdgeCollisionDetectionBehavior.prototype.setAABB"
                      }
                    ],
                    "file": "src/behaviors/edge-collision-detection.js",
                    "subclasses": [],
                    "name": "EdgeCollisionDetectionBehavior",
                    "path": "EdgeCollisionDetectionBehavior",
                    "outFile": "edge-collision-detection.html"
                  },
                  {
                    "id": "InteractiveBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('interactive')`.\n\nUser interaction helper.\n\nUsed to get mouse/touch events and add grab interactions.\n\nAdditional options include:\n- el: The element of the renderer. What you input as the `el` for the renderer.\n- moveThrottle: The min time between move events (default: `10`).\n- minVel: The minimum velocity clamp [[Vectorish]] (default: { x: -5, y: -5 }) to restrict velocity a user can give to a body\n- maxVel: The maximum velocity clamp [[Vectorish]] (default: { x: 5, y: 5 }) to restrict velocity a user can give to a body\n\nThe behavior also triggers the following events on the world:\n```javascript\n// a body has been grabbed\nworld.on('interact:grab', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed\n});\n// no body was grabbed, but the renderer area was clicked, or touched\nworld.on('interact:poke', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n});\n// when a mouse or pointer moves\nworld.on('interact:move', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the grabbed body that was moved (if applicable)\n});\n// when the viewport is released (mouseup, touchend)\nworld.on('interact:release', function( data ){\n    data.x; // the x coord\n    data.y; // the y coord\n    data.body; // the body that was grabbed (if applicable)\n});\n```\n\nThe behavior also sets body.isGrabbed = true for any grabbed bodies while they are grabbed.",
                    "short_description": "`Physics.behavior('interactive')`.\n",
                    "line": 45,
                    "aliases": [],
                    "children": [],
                    "file": "src/behaviors/interactive.js",
                    "subclasses": [],
                    "name": "InteractiveBehavior",
                    "path": "InteractiveBehavior",
                    "outFile": "interactive.html"
                  },
                  {
                    "id": "NewtonianBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('newtonian')`.\n\nNewtonian attraction between bodies (inverse square law).\n\nAdditional options include:\n- strength: The strength of the interaction between bodies. (default: `1`)\n- max: The maximum distance between bodies at which to apply the behavior. (default: `false`... infinite)\n- min: The minimum distance between bodies at which to apply the behavior. (default: `false`... autocalculate)",
                    "short_description": "`Physics.behavior('newtonian')`.\n",
                    "line": 13,
                    "aliases": [],
                    "children": [],
                    "file": "src/behaviors/newtonian.js",
                    "subclasses": [],
                    "name": "NewtonianBehavior",
                    "path": "NewtonianBehavior",
                    "outFile": "newtonian.html"
                  },
                  {
                    "id": "SweepPruneBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('sweep-prune')`.\n\nSweep and Prune implementation for broad phase collision detection.\n\nThis massively improves the speed of collision detection. It's set up to always be used with [[BodyCollisionDetection]], and [[BodyImpulseResponse]].\n\nAdditional options include:\n- channel: The channel to publish collision candidates to. (default: `collisions:candidates`)",
                    "short_description": "`Physics.behavior('sweep-prune')`.\n",
                    "line": 13,
                    "aliases": [],
                    "children": [
                      {
                        "id": "SweepPruneBehavior#broadPhase",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "Array"
                              }
                            ]
                          }
                        ],
                        "returns": [
                          {
                            "type": "Array",
                            "description": " The candidate data of overlapping aabbs\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Execute the broad phase and get candidate collisions",
                        "short_description": "Execute the broad phase and get candidate collisions",
                        "line": 95,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "broadPhase",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.broadPhase",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.broadPhase"
                      },
                      {
                        "id": "SweepPruneBehavior#checkOverlaps",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "Array"
                              }
                            ]
                          }
                        ],
                        "returns": [
                          {
                            "type": "Array",
                            "description": " List of candidate collisions\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Check each axis for overlaps of bodies AABBs",
                        "short_description": "Check each axis for overlaps of bodies AABBs",
                        "line": 257,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "checkOverlaps",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.checkOverlaps",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.checkOverlaps"
                      },
                      {
                        "id": "SweepPruneBehavior#clear",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": []
                          }
                        ],
                        "description": "Refresh tracking data",
                        "short_description": "Refresh tracking data",
                        "line": 52,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "clear",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.clear",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.clear"
                      },
                      {
                        "id": "SweepPruneBehavior#getPair",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "tr1",
                                "types": [
                                  "Object"
                                ],
                                "description": " First tracker\n\n     "
                              },
                              {
                                "name": "tr2",
                                "types": [
                                  "Object"
                                ],
                                "description": " Second tracker\n\n     "
                              },
                              {
                                "name": "doCreate",
                                "types": [
                                  "Boolean"
                                ],
                                "description": " Create if not found\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Object",
                                "description": " Pair object or null if not found\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "tr1",
                            "types": [
                              "Object"
                            ],
                            "description": " First tracker\n\n     "
                          },
                          {
                            "name": "tr2",
                            "types": [
                              "Object"
                            ],
                            "description": " Second tracker\n\n     "
                          },
                          {
                            "name": "doCreate",
                            "types": [
                              "Boolean"
                            ],
                            "description": " Create if not found\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " Pair object or null if not found\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Get a pair object for the tracker objects",
                        "short_description": "Get a pair object for the tracker objects",
                        "line": 181,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "getPair",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.getPair",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.getPair"
                      },
                      {
                        "id": "SweepPruneBehavior#sortIntervalLists",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": []
                          }
                        ],
                        "internal": true,
                        "description": "Simple insertion sort for each axis",
                        "short_description": "Simple insertion sort for each axis",
                        "line": 112,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "sortIntervalLists",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.sortIntervalLists",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sortIntervalLists"
                      },
                      {
                        "id": "SweepPruneBehavior#sweep",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " Event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " Event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to sweep and publish event if any candidate collisions are found",
                        "short_description": "Event callback to sweep and publish event if any candidate collisions are found",
                        "line": 487,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "sweep",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.sweep",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.sweep"
                      },
                      {
                        "id": "SweepPruneBehavior#trackBody",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " Event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " Event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to add body to list of those tracked by sweep and prune",
                        "short_description": "Event callback to add body to list of those tracked by sweep and prune",
                        "line": 393,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "trackBody",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.trackBody",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.trackBody"
                      },
                      {
                        "id": "SweepPruneBehavior#untrackBody",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "Object"
                                ],
                                "description": " Event data\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "Object"
                            ],
                            "description": " Event data\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Event callback to remove body from list of those tracked",
                        "short_description": "Event callback to remove body from list of those tracked",
                        "line": 432,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "untrackBody",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.untrackBody",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.untrackBody"
                      },
                      {
                        "id": "SweepPruneBehavior#updateIntervals",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": []
                          }
                        ],
                        "internal": true,
                        "description": "Update position intervals on each axis",
                        "short_description": "Update position intervals on each axis",
                        "line": 364,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/sweep-prune.js",
                        "name": "updateIntervals",
                        "name_prefix": "SweepPruneBehavior#",
                        "path": "SweepPruneBehavior.prototype.updateIntervals",
                        "outFile": "sweep-prune.html#SweepPruneBehavior.prototype.updateIntervals"
                      }
                    ],
                    "file": "src/behaviors/sweep-prune.js",
                    "subclasses": [],
                    "name": "SweepPruneBehavior",
                    "path": "SweepPruneBehavior",
                    "outFile": "sweep-prune.html"
                  },
                  {
                    "id": "VerletConstraintsBehavior",
                    "type": "class",
                    "superclass": "Behavior",
                    "description": "`Physics.behavior('verlet-constraints')`.\n\nVerlet constraints manager.\n\nHandles distance constraints, and angle constraints\n\nAdditional options include:\n- iterations: The number of iterations to take to relax the constraints. (default: `2`)",
                    "short_description": "`Physics.behavior('verlet-constraints')`.\n",
                    "line": 13,
                    "aliases": [],
                    "children": [
                      {
                        "id": "VerletConstraintsBehavior#angleConstraint",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "bodyA",
                                "types": [
                                  "Body"
                                ],
                                "description": " First body\n\n     "
                              },
                              {
                                "name": "bodyB",
                                "types": [
                                  "Body"
                                ],
                                "description": " Second body\n\n     "
                              },
                              {
                                "name": "bodyC",
                                "types": [
                                  "Body"
                                ],
                                "description": " Third body\n\n     "
                              },
                              {
                                "name": "stiffness",
                                "optional": true,
                                "types": [
                                  "Number"
                                ],
                                "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                              },
                              {
                                "name": "targetAngle",
                                "optional": true,
                                "types": [
                                  "Number"
                                ],
                                "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Object",
                                "description": " The constraint data object\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "bodyA",
                            "types": [
                              "Body"
                            ],
                            "description": " First body\n\n     "
                          },
                          {
                            "name": "bodyB",
                            "types": [
                              "Body"
                            ],
                            "description": " Second body\n\n     "
                          },
                          {
                            "name": "bodyC",
                            "types": [
                              "Body"
                            ],
                            "description": " Third body\n\n     "
                          },
                          {
                            "name": "stiffness",
                            "types": [
                              "Number"
                            ],
                            "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                          },
                          {
                            "name": "targetAngle",
                            "types": [
                              "Number"
                            ],
                            "description": " Target angle. Defaults to the current angle between bodies\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The constraint data object\n\n     "
                          }
                        ],
                        "description": "Constrain three bodies to a target relative angle\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA`, `.bodyB`, and `.bodyC` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetAngle` is the target angle",
                        "short_description": "Constrain three bodies to a target relative angle\n",
                        "line": 129,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "angleConstraint",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.angleConstraint",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.angleConstraint"
                      },
                      {
                        "id": "VerletConstraintsBehavior#distanceConstraint",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "bodyA",
                                "types": [
                                  "Body"
                                ],
                                "description": " First body\n\n     "
                              },
                              {
                                "name": "bodyB",
                                "types": [
                                  "Body"
                                ],
                                "description": " Second body\n\n     "
                              },
                              {
                                "name": "stiffness",
                                "optional": true,
                                "types": [
                                  "Number"
                                ],
                                "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                              },
                              {
                                "name": "targetLength",
                                "optional": true,
                                "types": [
                                  "Number"
                                ],
                                "description": " Target length. defaults to current distance between the bodies\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Object",
                                "description": " The constraint data object\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "bodyA",
                            "types": [
                              "Body"
                            ],
                            "description": " First body\n\n     "
                          },
                          {
                            "name": "bodyB",
                            "types": [
                              "Body"
                            ],
                            "description": " Second body\n\n     "
                          },
                          {
                            "name": "stiffness",
                            "types": [
                              "Number"
                            ],
                            "description": " A number between 0 and 1 that represents the stiffness of the constraint. Defaults to: `0.5`\n\n     "
                          },
                          {
                            "name": "targetLength",
                            "types": [
                              "Number"
                            ],
                            "description": " Target length. defaults to current distance between the bodies\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The constraint data object\n\n     "
                          }
                        ],
                        "description": "Constrain two bodies to a target relative distance.\n\nReturns constraint data that can be used to remove the constraint later.\n\n- `.bodyA` and `.bodyB` are references to the bodies\n- `.type` is the type of constraint\n- `.id` is the string ID of the constraint\n- `.stiffness` is the stiffness\n- `.targetLength` is the target length",
                        "short_description": "Constrain two bodies to a target relative distance.\n",
                        "line": 86,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "distanceConstraint",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.distanceConstraint",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.distanceConstraint"
                      },
                      {
                        "id": "VerletConstraintsBehavior#drop",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "description": "Remove all constraints",
                        "short_description": "Remove all constraints",
                        "line": 60,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "drop",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.drop",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.drop"
                      },
                      {
                        "id": "VerletConstraintsBehavior#getConstraints",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "Object"
                              }
                            ]
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The object containing copied arrays of the constraints\n\n     "
                          }
                        ],
                        "description": "Get all constraints.",
                        "short_description": "Get all constraints.",
                        "line": 419,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "getConstraints",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.getConstraints",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.getConstraints"
                      },
                      {
                        "id": "VerletConstraintsBehavior#remove",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "constraintData",
                                "types": [
                                  "Object"
                                ],
                                "description": " The constraint data returned when creating a constraint\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          },
                          {
                            "arguments": [
                              {
                                "name": "constraintId",
                                "types": [
                                  "String"
                                ],
                                "description": " The constraint id\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "constraintData",
                            "types": [
                              "Object"
                            ],
                            "description": " The constraint data returned when creating a constraint\n\n     "
                          },
                          {
                            "name": "constraintId",
                            "types": [
                              "String"
                            ],
                            "description": " The constraint id\n\n     "
                          }
                        ],
                        "description": "Remove a constraint",
                        "short_description": "Remove a constraint",
                        "line": 160,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "remove",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.remove",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.remove"
                      },
                      {
                        "id": "VerletConstraintsBehavior#resolve",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": []
                          }
                        ],
                        "internal": true,
                        "description": "Resolve all constraints.",
                        "short_description": "Resolve all constraints.",
                        "line": 399,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "resolve",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.resolve",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolve"
                      },
                      {
                        "id": "VerletConstraintsBehavior#resolveAngleConstraints",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "coef",
                                "types": [
                                  "Number"
                                ],
                                "description": " Coefficient for this resolution phase\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "coef",
                            "types": [
                              "Number"
                            ],
                            "description": " Coefficient for this resolution phase\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Resolve angle constraints.",
                        "short_description": "Resolve angle constraints.",
                        "line": 205,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "resolveAngleConstraints",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.resolveAngleConstraints",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveAngleConstraints"
                      },
                      {
                        "id": "VerletConstraintsBehavior#resolveDistanceConstraints",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "coef",
                                "types": [
                                  "Number"
                                ],
                                "description": " Coefficient for this resolution phase\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "coef",
                            "types": [
                              "Number"
                            ],
                            "description": " Coefficient for this resolution phase\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Resolve distance constraints.",
                        "short_description": "Resolve distance constraints.",
                        "line": 330,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "resolveDistanceConstraints",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.resolveDistanceConstraints",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.resolveDistanceConstraints"
                      },
                      {
                        "id": "VerletConstraintsBehavior#shuffleConstraints",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": []
                          }
                        ],
                        "internal": true,
                        "description": "Mix up the constraints.",
                        "short_description": "Mix up the constraints.",
                        "line": 388,
                        "aliases": [],
                        "children": [],
                        "file": "src/behaviors/verlet-constraints.js",
                        "name": "shuffleConstraints",
                        "name_prefix": "VerletConstraintsBehavior#",
                        "path": "VerletConstraintsBehavior.prototype.shuffleConstraints",
                        "outFile": "verlet-constraints.html#VerletConstraintsBehavior.prototype.shuffleConstraints"
                      }
                    ],
                    "file": "src/behaviors/verlet-constraints.js",
                    "subclasses": [],
                    "name": "VerletConstraintsBehavior",
                    "path": "VerletConstraintsBehavior",
                    "outFile": "verlet-constraints.html"
                  }
                ],
                "file": "src/core/behavior.js",
                "subclasses": [
                  "AttractorBehavior",
                  "BodyCollisionDetectionBehavior",
                  "BodyImpulseResponseBehavior",
                  "ConstantAccelerationBehavior",
                  "EdgeCollisionDetectionBehavior",
                  "InteractiveBehavior",
                  "NewtonianBehavior",
                  "SweepPruneBehavior",
                  "VerletConstraintsBehavior"
                ],
                "name": "Behavior",
                "path": "Behavior",
                "outFile": "behavior.html"
              }
            ],
            "file": "src/core/behavior.js",
            "name": "behavior",
            "name_prefix": "Physics.",
            "path": "Physics.behavior",
            "outFile": "behavior.html#Physics.behavior"
          },
          {
            "id": "Physics.body",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the body to create\n\n "
                  },
                  {
                    "name": "options",
                    "optional": true,
                    "types": [
                      "Object"
                    ],
                    "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Body"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "name",
                "types": [
                  "String"
                ],
                "description": " The name of the body to create\n\n "
              },
              {
                "name": "options",
                "types": [
                  "Object"
                ],
                "description": " The configuration for that body ( depends on body ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // is the body hidden (not to be rendered)?\n\n        hidden: false,\n\n        // is the body `dynamic`, `kinematic` or `static`?\n\n        // http://www.box2d.org/manual.html#_Toc258082973\n\n        treatment: 'dynamic',\n\n        // body mass\n\n        mass: 1.0,\n\n        // body restitution. How \"bouncy\" is it?\n\n        restitution: 1.0,\n\n        // what is its coefficient of friction with another surface with COF = 1?\n\n        cof: 0.8,\n\n        // what is the view object (mixed) that should be used when rendering?\n\n        view: null,\n\n        // the vector offsetting the geometry from its center of mass\n\n        offset: Physics.vector(0,0)\n\n    }\n\n   ```\n\n "
              }
            ],
            "related_to": "Physics.util.decorator",
            "description": "Factory function for creating Bodies.\n\nVisit [the PhysicsJS wiki on Bodies](https://github.com/wellcaffeinated/PhysicsJS/wiki/Bodies)\nfor usage documentation.",
            "short_description": "Factory function for creating Bodies.\n",
            "line": 58,
            "aliases": [],
            "children": [
              {
                "id": "Body",
                "type": "class",
                "belongs_to": "Physics.body",
                "description": "The base class for bodies created by [[Physics.body]] factory function.",
                "short_description": "The base class for bodies created by [[Physics.body]] factory function.",
                "line": 65,
                "aliases": [
                  "PointBody"
                ],
                "children": [
                  {
                    "id": "Body#aabb",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "Object"
                          }
                        ]
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The aabb of this body\n\n     "
                      }
                    ],
                    "related_to": "Physics.aabb",
                    "description": "Get the Axis aligned bounding box for the body in its current position and rotation",
                    "short_description": "Get the Axis aligned bounding box for the body in its current position and rotation",
                    "line": 458,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "aabb",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.aabb",
                    "outFile": "body.html#Body.prototype.aabb"
                  },
                  {
                    "id": "Body#accelerate",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "acc",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " The acceleration vector\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "acc",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The acceleration vector\n\n     "
                      }
                    ],
                    "description": "Accelerate the body by adding supplied vector to its current acceleration",
                    "short_description": "Accelerate the body by adding supplied vector to its current acceleration",
                    "line": 395,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "accelerate",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.accelerate",
                    "outFile": "body.html#Body.prototype.accelerate"
                  },
                  {
                    "id": "Body#applyForce",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "force",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The force vector\n\n     "
                          },
                          {
                            "name": "p",
                            "optional": true,
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The point vector from the COM at which to apply the force\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "force",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The force vector\n\n     "
                      },
                      {
                        "name": "p",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The point vector from the COM at which to apply the force\n\n     "
                      }
                    ],
                    "description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
                    "short_description": "Apply a force at center of mass, or at point `p` relative to the center of mass",
                    "line": 411,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "applyForce",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.applyForce",
                    "outFile": "body.html#Body.prototype.applyForce"
                  },
                  {
                    "id": "Body#cof",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "0.8"
                          }
                        ]
                      }
                    ],
                    "description": "The coefficient of friction of the body.\n\nIt's how much \"slide\" it has during collisions.\n\nA `cof` of `0` will really slidy.\n\nA `cof` of `1` has no slide.\n\nThis is a very simplistic implementation at the moment.\nWhat would be better is to have both static and kinetic\nfriction. But that's not done yet.",
                    "short_description": "The coefficient of friction of the body.\n",
                    "line": 218,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "cof",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.cof",
                    "outFile": "body.html#Body.prototype.cof"
                  },
                  {
                    "id": "Body#geometry",
                    "type": "namespace",
                    "related_to": "Physics.geometry",
                    "description": "The geometry for this body.\n\nBy default it is a `point` geometry which gets overridden.",
                    "short_description": "The geometry for this body.\n",
                    "line": 171,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "geometry",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.geometry",
                    "outFile": "body.html#Body.prototype.geometry"
                  },
                  {
                    "id": "Body#getGlobalOffset",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "out",
                            "optional": true,
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The offset in global coordinates\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "out",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " A vector to use to put the result into. One is created if `out` isn't specified.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The offset in global coordinates\n\n     "
                      }
                    ],
                    "related_to": "Body#offset",
                    "description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
                    "short_description": "Get the body offset vector (from the center of mass) for the body's shape in global coordinates.",
                    "line": 445,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "getGlobalOffset",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.getGlobalOffset",
                    "outFile": "body.html#Body.prototype.getGlobalOffset"
                  },
                  {
                    "id": "Body#hidden",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "false"
                          }
                        ]
                      }
                    ],
                    "description": "Determines whether the body should be hidden by the renderer.",
                    "short_description": "Determines whether the body should be hidden by the renderer.",
                    "line": 237,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "hidden",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.hidden",
                    "outFile": "body.html#Body.prototype.hidden"
                  },
                  {
                    "id": "Body#init",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration options passed by the factory\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration options passed by the factory\n\n     "
                      }
                    ],
                    "internal": true,
                    "description": "Initialization. Internal use.",
                    "short_description": "Initialization. Internal use.",
                    "line": 72,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "init",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.init",
                    "outFile": "body.html#Body.prototype.init"
                  },
                  {
                    "id": "Body#mass",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "1"
                          }
                        ]
                      }
                    ],
                    "description": "The mass.",
                    "short_description": "The mass.",
                    "line": 178,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "mass",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.mass",
                    "outFile": "body.html#Body.prototype.mass"
                  },
                  {
                    "id": "Body#offset",
                    "type": "namespace",
                    "description": "The vector offsetting the body's shape from its center of mass.",
                    "short_description": "The vector offsetting the body's shape from its center of mass.",
                    "line": 184,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "offset",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.offset",
                    "outFile": "body.html#Body.prototype.offset"
                  },
                  {
                    "id": "Body#options",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The options to set as an object\n\n         "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The options\n\n         "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The options to set as an object\n\n         "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The options\n\n         "
                      }
                    ],
                    "related_to": "Physics.util.options",
                    "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                    "short_description": "Set options on this instance.\n",
                    "line": 93,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "options",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.options",
                    "outFile": "body.html#Body.prototype.options"
                  },
                  {
                    "id": "Body#recalc",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "description": "Recalculate properties.\n\nIntended to be overridden by subclasses. Call when body physical properties are changed.",
                    "short_description": "Recalculate properties.\n",
                    "line": 503,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "recalc",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.recalc",
                    "outFile": "body.html#Body.prototype.recalc"
                  },
                  {
                    "id": "Body#restitution",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "1"
                          }
                        ]
                      }
                    ],
                    "description": "The restitution.\n\nThis is the \"bounciness\" of the body.\nIt's a number between `0` and `1`.\n\nA restitution of 1 is the bounciest.\n\nA restitution of 0 is not bouncy.\n\nWhen colliding the restitutions of bodies are\nmultiplied together to get the restitution between two\nbodies.",
                    "short_description": "The restitution.\n",
                    "line": 202,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "restitution",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.restitution",
                    "outFile": "body.html#Body.prototype.restitution"
                  },
                  {
                    "id": "Body#setWorld",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Object"
                            ],
                            "description": " The world (or null)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Object"
                        ],
                        "description": " The world (or null)\n\n     "
                      }
                    ],
                    "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                    "short_description": "Set which world to apply to.\n",
                    "line": 374,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "setWorld",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.setWorld",
                    "outFile": "body.html#Body.prototype.setWorld"
                  },
                  {
                    "id": "Body#sleep",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "dt",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " Time to advance the idle time\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Boolean"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " Time to advance the idle time\n\n     "
                      },
                      {
                        "name": "dt",
                        "types": [
                          "Boolean"
                        ],
                        "description": " If `true`, the body will be forced to sleep. If `false`, the body will be forced to awake.\n\n     "
                      }
                    ],
                    "description": "Get and/or set whether the body is asleep.\n\nIf called with a time (in ms), the time will be added to the idle time and sleep conditions will be checked.",
                    "short_description": "Get and/or set whether the body is asleep.\n",
                    "line": 271,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "sleep",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.sleep",
                    "outFile": "body.html#Body.prototype.sleep"
                  },
                  {
                    "id": "Body#sleepCheck",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "dt",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " Time to advance the idle time\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " Time to advance the idle time\n\n     "
                      }
                    ],
                    "description": "Check if the body should be sleeping.\n\nCall with no arguments if some event could possibly wake up the body. This will force the body to recheck.",
                    "short_description": "Check if the body should be sleeping.\n",
                    "line": 303,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "sleepCheck",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.sleepCheck",
                    "outFile": "body.html#Body.prototype.sleepCheck"
                  },
                  {
                    "id": "Body#state",
                    "type": "namespace",
                    "description": "The physical state container.\n\n- ``this.state.pos`` ([[Physics.vector]]) The position vector.\n- ``this.state.vel`` ([[Physics.vector]]) The velocity vector.\n- ``this.state.acc`` ([[Physics.vector]]) The acceleration vector.\n- ``this.state.angular.pos`` ([[Number]]) The angular position (in radians, positive is clockwise starting along the x axis)\n- ``this.state.angular.vel`` ([[Number]]) The angular velocity\n- ``this.state.angular.acc`` ([[Number]]) The angular acceleration\n\nProperties from the previous timestep are stored in:\n```javascript\nthis.state.old; // .pos, .vel, ...\n```",
                    "short_description": "The physical state container.\n",
                    "line": 117,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "state",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.state",
                    "outFile": "body.html#Body.prototype.state"
                  },
                  {
                    "id": "Body#styles",
                    "type": "namespace",
                    "related_to": "Physics.renderer",
                    "description": "The styles the renderer should use for creating the view.\n\nThe styles depend on the renderer. See [[Renderer#createView]] for style options.",
                    "short_description": "The styles the renderer should use for creating the view.\n",
                    "line": 260,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "styles",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.styles",
                    "outFile": "body.html#Body.prototype.styles"
                  },
                  {
                    "id": "Body#toBodyCoords",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "v",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " The vector to transform\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The transformed vector\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The vector to transform\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The transformed vector\n\n     "
                      }
                    ],
                    "description": "Transform a vector into coordinates relative to this body.",
                    "short_description": "Transform a vector into coordinates relative to this body.",
                    "line": 481,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "toBodyCoords",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.toBodyCoords",
                    "outFile": "body.html#Body.prototype.toBodyCoords"
                  },
                  {
                    "id": "Body#toWorldCoords",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "v",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " The vector to transform\n\n      "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The transformed vector\n\n      "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The vector to transform\n\n      "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The transformed vector\n\n      "
                      }
                    ],
                    "description": "Transform a vector from body coordinates into world coordinates.",
                    "short_description": "Transform a vector from body coordinates into world coordinates.",
                    "line": 492,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "toWorldCoords",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.toWorldCoords",
                    "outFile": "body.html#Body.prototype.toWorldCoords"
                  },
                  {
                    "id": "Body#treatment",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "String"
                          }
                        ]
                      }
                    ],
                    "description": "How the body is treated by the simulation.\n\nThe body can be `dynamic`, `kinematic` or `static` as\ndescribed by the [analogous box2d docs](http://www.box2d.org/manual.html#_Toc258082973).\n\n* _dynamic_ bodies are treated \"normally\". They are integrated, and collide, and all that.\n* _kinematic_ bodies are bodies that move at a specified velocity. Other bodies collide with them, but they don't bounce off of other bodies.\n* _static_ bodies just stand still. They are like obstacles.",
                    "short_description": "How the body is treated by the simulation.\n",
                    "line": 231,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "treatment",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.treatment",
                    "outFile": "body.html#Body.prototype.treatment"
                  },
                  {
                    "id": "Body#uid",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "Number"
                          }
                        ]
                      }
                    ],
                    "description": "The unique id for the body",
                    "short_description": "The unique id for the body",
                    "line": 162,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "uid",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.uid",
                    "outFile": "body.html#Body.prototype.uid"
                  },
                  {
                    "id": "Body#view",
                    "type": "constant",
                    "signatures": [
                      {
                        "returns": [
                          {
                            "type": "it_depends"
                          }
                        ]
                      }
                    ],
                    "related_to": "Physics.renderer",
                    "description": "Storage for use by the renderer.\n\nThe type of renderer will put different things in the view property.\nBasically, this is how the body \"looks\". It could be a HTMLElement, or\nan Image, etc...\n\nIf your body changes appearance (shape), you should modify this somehow\notherwise the renderer will keep using this same view. If you're letting\nthe renderer create the view for you, just set this to `undefined` if the\nbody gets modified in shape during the simulation.",
                    "short_description": "Storage for use by the renderer.\n",
                    "line": 252,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "view",
                    "name_prefix": "Body#",
                    "path": "Body.prototype.view",
                    "outFile": "body.html#Body.prototype.view"
                  },
                  {
                    "id": "Body.getCOM",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " The list of bodies\n\n "
                          },
                          {
                            "name": "com",
                            "optional": true,
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The center of mass position\n\n "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "bodies",
                        "types": [
                          "Array"
                        ],
                        "description": " The list of bodies\n\n "
                      },
                      {
                        "name": "com",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The vector to put result into. A new vector will be created if not provided.\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The center of mass position\n\n "
                      }
                    ],
                    "description": "Get center of mass position from list of bodies.",
                    "short_description": "Get center of mass position from list of bodies.",
                    "line": 517,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/body.js",
                    "name": "getCOM",
                    "name_prefix": "Body.",
                    "path": "Body.getCOM",
                    "outFile": "body.html#Body.getCOM"
                  },
                  {
                    "id": "CircleBody",
                    "type": "class",
                    "superclass": "Body",
                    "description": "Physics.body('circle')\n\nThe circle body has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
                    "short_description": "Physics.body('circle')\n",
                    "line": 24,
                    "aliases": [],
                    "children": [],
                    "file": "src/bodies/circle.js",
                    "subclasses": [],
                    "name": "CircleBody",
                    "path": "CircleBody",
                    "outFile": "circle.html"
                  },
                  {
                    "id": "CompoundBody",
                    "type": "class",
                    "superclass": "Body",
                    "description": "Physics.body('compound')\n\nNot a body in itself. It's a container to group other bodies. The position of the body is the center of mass.\nIt must have at least one child before being added to the world.\n\nAdditional config options:\n\n- children: Array of [[Body]] objects.\n\nExample:\n\n```javascript\nvar thing = Physics.body('compound', {\n    // place the center of mass at (300, 200)\n    x: 300,\n    y: 200,\n    // the center of mass is automatically calculated and used to position the shape\n    children: [\n        body1,\n        body2,\n        // ...\n    ]\n});\n```",
                    "short_description": "Physics.body('compound')\n",
                    "line": 32,
                    "aliases": [],
                    "children": [
                      {
                        "id": "CompoundBody#addChild",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "body",
                                "types": [
                                  "Body"
                                ],
                                "description": " The child to add\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "body",
                            "types": [
                              "Body"
                            ],
                            "description": " The child to add\n\n     "
                          }
                        ],
                        "description": "Add a body as a child.",
                        "short_description": "Add a body as a child.",
                        "line": 68,
                        "aliases": [],
                        "children": [],
                        "file": "src/bodies/compound.js",
                        "name": "addChild",
                        "name_prefix": "CompoundBody#",
                        "path": "CompoundBody.prototype.addChild",
                        "outFile": "compound.html#CompoundBody.prototype.addChild"
                      },
                      {
                        "id": "CompoundBody#addChildren",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "bodies",
                                "types": [
                                  "Array"
                                ],
                                "description": " The list of children to add\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " The list of children to add\n\n     "
                          }
                        ],
                        "description": "Add an array of children to the compound.",
                        "short_description": "Add an array of children to the compound.",
                        "line": 80,
                        "aliases": [],
                        "children": [],
                        "file": "src/bodies/compound.js",
                        "name": "addChildren",
                        "name_prefix": "CompoundBody#",
                        "path": "CompoundBody.prototype.addChildren",
                        "outFile": "compound.html#CompoundBody.prototype.addChildren"
                      },
                      {
                        "id": "CompoundBody#clear",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "description": "Remove all children.",
                        "short_description": "Remove all children.",
                        "line": 142,
                        "aliases": [],
                        "children": [],
                        "file": "src/bodies/compound.js",
                        "name": "clear",
                        "name_prefix": "CompoundBody#",
                        "path": "CompoundBody.prototype.clear",
                        "outFile": "compound.html#CompoundBody.prototype.clear"
                      },
                      {
                        "id": "CompoundBody#refreshGeometry",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                        "short_description": "If the children's positions change, `refreshGeometry()` should be called to fix the shape.",
                        "line": 159,
                        "aliases": [],
                        "children": [],
                        "file": "src/bodies/compound.js",
                        "name": "refreshGeometry",
                        "name_prefix": "CompoundBody#",
                        "path": "CompoundBody.prototype.refreshGeometry",
                        "outFile": "compound.html#CompoundBody.prototype.refreshGeometry"
                      }
                    ],
                    "file": "src/bodies/compound.js",
                    "subclasses": [],
                    "name": "CompoundBody",
                    "path": "CompoundBody",
                    "outFile": "compound.html"
                  },
                  {
                    "id": "ConvexPolygonBody",
                    "type": "class",
                    "superclass": "Body",
                    "description": "Physics.body('convex-polygon')\n\nBody for convex polygons. The position of the body is the centroid of the polygon.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.body('convex-polygon', {\n    // place the centroid of the polygon at (300, 200)\n    x: 300,\n    y: 200,\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
                    "short_description": "Physics.body('convex-polygon')\n",
                    "line": 33,
                    "aliases": [],
                    "children": [],
                    "file": "src/bodies/convex-polygon.js",
                    "subclasses": [],
                    "name": "ConvexPolygonBody",
                    "path": "ConvexPolygonBody",
                    "outFile": "convex-polygon.html"
                  },
                  {
                    "id": "PointBody",
                    "type": "class",
                    "superclass": "Body",
                    "alias_of": "Body",
                    "description": "Physics.body('point')\n\nThe point body represents a point.",
                    "short_description": "Physics.body('point')\n",
                    "line": 8,
                    "aliases": [],
                    "children": [],
                    "file": "src/bodies/point.js",
                    "subclasses": [],
                    "name": "PointBody",
                    "path": "PointBody",
                    "outFile": "point.html"
                  },
                  {
                    "id": "RectangleBody",
                    "type": "class",
                    "superclass": "Body",
                    "description": "Physics.body('rectangle')\n\nBody for rectangles. The position of the body is the centroid of the rectangle.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rect = Physics.body('rectangle', {\n    // place the centroid of the rectangle at (300, 200)\n    x: 300,\n    y: 200,\n    width: 30,\n    height: 40\n});\n```",
                    "short_description": "Physics.body('rectangle')\n",
                    "line": 28,
                    "aliases": [],
                    "children": [],
                    "file": "src/bodies/rectangle.js",
                    "subclasses": [],
                    "name": "RectangleBody",
                    "path": "RectangleBody",
                    "outFile": "rectangle.html"
                  }
                ],
                "file": "src/core/body.js",
                "subclasses": [
                  "CircleBody",
                  "CompoundBody",
                  "ConvexPolygonBody",
                  "PointBody",
                  "RectangleBody"
                ],
                "name": "Body",
                "path": "Body",
                "outFile": "body.html"
              }
            ],
            "file": "src/core/body.js",
            "name": "body",
            "name_prefix": "Physics.",
            "path": "Physics.body",
            "outFile": "body.html#Physics.body"
          },
          {
            "id": "Physics.geometry",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the geometry to create\n\n "
                  },
                  {
                    "name": "options",
                    "optional": true,
                    "types": [
                      "Object"
                    ],
                    "description": " The configuration for that geometry ( depends on geometry ).\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Geometry"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "name",
                "types": [
                  "String"
                ],
                "description": " The name of the geometry to create\n\n "
              },
              {
                "name": "options",
                "types": [
                  "Object"
                ],
                "description": " The configuration for that geometry ( depends on geometry ).\n\n "
              }
            ],
            "related_to": "Physics.util.decorator",
            "description": "Factory function for creating Geometries.\n\nVisit [the PhysicsJS wiki on Geometries](https://github.com/wellcaffeinated/PhysicsJS/wiki/Geometries)\nfor usage documentation.",
            "short_description": "Factory function for creating Geometries.\n",
            "line": 12,
            "aliases": [],
            "children": [
              {
                "id": "Physics.geometry.getPolygonArea",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "hull",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of ([[Vectorish]]) vertices\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " The area (positive for clockwise ordering)\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "hull",
                    "types": [
                      "Array"
                    ],
                    "description": " Array of ([[Vectorish]]) vertices\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " The area (positive for clockwise ordering)\n\n "
                  }
                ],
                "description": "Get the signed area of the polygon.",
                "short_description": "Get the signed area of the polygon.",
                "line": 202,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "getPolygonArea",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.getPolygonArea",
                "outFile": "geometry-helpers.html#Physics.geometry.getPolygonArea"
              },
              {
                "id": "Physics.geometry.getPolygonCentroid",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "hull",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of ([[Vectorish]]) vertices\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The centroid\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "hull",
                    "types": [
                      "Array"
                    ],
                    "description": " Array of ([[Vectorish]]) vertices\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Physics.vector",
                    "description": " The centroid\n\n "
                  }
                ],
                "description": "Get the coordinates of the centroid.",
                "short_description": "Get the coordinates of the centroid.",
                "line": 240,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "getPolygonCentroid",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.getPolygonCentroid",
                "outFile": "geometry-helpers.html#Physics.geometry.getPolygonCentroid"
              },
              {
                "id": "Physics.geometry.getPolygonMOI",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "hull",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of ([[Vectorish]]) vertices\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " The polygon's moment of inertia\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "hull",
                    "types": [
                      "Array"
                    ],
                    "description": " Array of ([[Vectorish]]) vertices\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " The polygon's moment of inertia\n\n "
                  }
                ],
                "description": "Gets the moment of inertia of a convex polygon\n\nSee [List of moments of inertia](http://en.wikipedia.org/wiki/List_of_moments_of_inertia)\nfor more information.\n\n_Note_: we make the following assumpations:\n* mass is unitary (== 1)\n* axis of rotation is the origin",
                "short_description": "Gets the moment of inertia of a convex polygon\n",
                "line": 104,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "getPolygonMOI",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.getPolygonMOI",
                "outFile": "geometry-helpers.html#Physics.geometry.getPolygonMOI"
              },
              {
                "id": "Physics.geometry.isPointInPolygon",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "pt",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The point to test\n\n "
                      },
                      {
                        "name": "hull",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of ([[Vectorish]]) vertices\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if point `pt` is inside the polygon\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "pt",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The point to test\n\n "
                  },
                  {
                    "name": "hull",
                    "types": [
                      "Array"
                    ],
                    "description": " Array of ([[Vectorish]]) vertices\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " `true` if point `pt` is inside the polygon\n\n "
                  }
                ],
                "description": "Check if point is inside polygon hull.",
                "short_description": "Check if point is inside polygon hull.",
                "line": 155,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "isPointInPolygon",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.isPointInPolygon",
                "outFile": "geometry-helpers.html#Physics.geometry.isPointInPolygon"
              },
              {
                "id": "Physics.geometry.isPolygonConvex",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "hull",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of ([[Vectorish]]) vertices\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "hull",
                    "types": [
                      "Array"
                    ],
                    "description": " Array of ([[Vectorish]]) vertices\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " `true` if the polygon is convex. `false` otherwise.\n\n "
                  }
                ],
                "description": "Determine if polygon hull is convex",
                "short_description": "Determine if polygon hull is convex",
                "line": 39,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "isPolygonConvex",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.isPolygonConvex",
                "outFile": "geometry-helpers.html#Physics.geometry.isPolygonConvex"
              },
              {
                "id": "Physics.geometry.nearestPointOnLine",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "pt",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The point\n\n "
                      },
                      {
                        "name": "linePt1",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The first endpoint of the line\n\n "
                      },
                      {
                        "name": "linePt2",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The second endpoint of the line\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Vector",
                        "description": " The closest point\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "pt",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The point\n\n "
                  },
                  {
                    "name": "linePt1",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The first endpoint of the line\n\n "
                  },
                  {
                    "name": "linePt2",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The second endpoint of the line\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Vector",
                    "description": " The closest point\n\n "
                  }
                ],
                "description": "Get the closest point on a discrete line to specified point.",
                "short_description": "Get the closest point on a discrete line to specified point.",
                "line": 291,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "nearestPointOnLine",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.nearestPointOnLine",
                "outFile": "geometry-helpers.html#Physics.geometry.nearestPointOnLine"
              },
              {
                "id": "Physics.geometry.regularPolygonVertices",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "sides",
                        "types": [
                          "Number"
                        ],
                        "description": " Number of sides the polygon has\n\n "
                      },
                      {
                        "name": "radius",
                        "types": [
                          "Number"
                        ],
                        "description": " Size from center to a vertex\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array",
                        "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "sides",
                    "types": [
                      "Number"
                    ],
                    "description": " Number of sides the polygon has\n\n "
                  },
                  {
                    "name": "radius",
                    "types": [
                      "Number"
                    ],
                    "description": " Size from center to a vertex\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Array",
                    "description": " A list of [[Vectorish]] objects representing the vertices\n\n "
                  }
                ],
                "description": "Generate a list of vertices for a regular polygon of any number of sides.",
                "short_description": "Generate a list of vertices for a regular polygon of any number of sides.",
                "line": 13,
                "aliases": [],
                "children": [],
                "file": "src/core/geometry-helpers.js",
                "name": "regularPolygonVertices",
                "name_prefix": "Physics.geometry.",
                "path": "Physics.geometry.regularPolygonVertices",
                "outFile": "geometry-helpers.html#Physics.geometry.regularPolygonVertices"
              },
              {
                "id": "Geometry",
                "type": "class",
                "belongs_to": "Physics.geometry",
                "description": "The base class for geometries created by [[Physics.geometry]] factory function.",
                "short_description": "The base class for geometries created by [[Physics.geometry]] factory function.",
                "line": 19,
                "aliases": [
                  "PointGeometry"
                ],
                "children": [
                  {
                    "id": "Geometry#aabb",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "angle",
                            "types": [
                              "Number"
                            ],
                            "description": " The angle to rotate the geometry\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " Bounding box values\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "angle",
                        "types": [
                          "Number"
                        ],
                        "description": " The angle to rotate the geometry\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " Bounding box values\n\n     "
                      }
                    ],
                    "related_to": "Physics.aabb",
                    "description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
                    "short_description": "Get axis-aligned bounding box for this object (rotated by angle if specified).",
                    "line": 57,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/geometry.js",
                    "name": "aabb",
                    "name_prefix": "Geometry#",
                    "path": "Geometry.prototype.aabb",
                    "outFile": "geometry.html#Geometry.prototype.aabb"
                  },
                  {
                    "id": "Geometry#getFarthestCorePoint",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "dir",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " Direction to look\n\n     "
                          },
                          {
                            "name": "result",
                            "optional": true,
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " A vector to write result to. Speeds up calculations.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The farthest hull point in local coordinates\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "dir",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " Direction to look\n\n     "
                      },
                      {
                        "name": "result",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " A vector to write result to. Speeds up calculations.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The farthest hull point in local coordinates\n\n     "
                      }
                    ],
                    "related_to": "Geometry#getFarthestHullPoint",
                    "description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nThis does almost the same thing as [[Geometry#getFarthestHullPoint]]\nbut shrinks the shape by subtracting \"margin\" from it.\nReturn the position of the point on the \"core\" shape.",
                    "short_description": "Get farthest point on the core shape of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
                    "line": 104,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/geometry.js",
                    "name": "getFarthestCorePoint",
                    "name_prefix": "Geometry#",
                    "path": "Geometry.prototype.getFarthestCorePoint",
                    "outFile": "geometry.html#Geometry.prototype.getFarthestCorePoint"
                  },
                  {
                    "id": "Geometry#getFarthestHullPoint",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "dir",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " Direction to look\n\n     "
                          },
                          {
                            "name": "result",
                            "optional": true,
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " A vector to write result to. Speeds up calculations.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Physics.vector",
                            "description": " The farthest hull point in local coordinates\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "dir",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " Direction to look\n\n     "
                      },
                      {
                        "name": "result",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " A vector to write result to. Speeds up calculations.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Physics.vector",
                        "description": " The farthest hull point in local coordinates\n\n     "
                      }
                    ],
                    "description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n\nAssume all coordinates are relative to the geometry\ncentroid (IE: in the body frame).\n\nThis should take a direction vector then it should\ncalculate the location (in that frame of reference)\nof the point on the perimeter (hull) if you traveled\nin a straight line from the centroid in the provided\ndirection. The result should be returned/set just like\nit is in the other geometries.",
                    "short_description": "Get farthest point on the hull of this geometry\nalong the direction vector `dir`\nreturns local coordinates. Replaces result if provided.\n",
                    "line": 82,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/geometry.js",
                    "name": "getFarthestHullPoint",
                    "name_prefix": "Geometry#",
                    "path": "Geometry.prototype.getFarthestHullPoint",
                    "outFile": "geometry.html#Geometry.prototype.getFarthestHullPoint"
                  },
                  {
                    "id": "Geometry#init",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration options passed by the factory\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration options passed by the factory\n\n     "
                      }
                    ],
                    "internal": true,
                    "description": "Initialization. Internal use.",
                    "short_description": "Initialization. Internal use.",
                    "line": 26,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/geometry.js",
                    "name": "init",
                    "name_prefix": "Geometry#",
                    "path": "Geometry.prototype.init",
                    "outFile": "geometry.html#Geometry.prototype.init"
                  },
                  {
                    "id": "Geometry#options",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The options to set as an object\n\n         "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The options\n\n         "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The options to set as an object\n\n         "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The options\n\n         "
                      }
                    ],
                    "related_to": "Physics.util.options",
                    "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                    "short_description": "Set options on this instance.\n",
                    "line": 44,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/geometry.js",
                    "name": "options",
                    "name_prefix": "Geometry#",
                    "path": "Geometry.prototype.options",
                    "outFile": "geometry.html#Geometry.prototype.options"
                  },
                  {
                    "id": "CircleGeometry",
                    "type": "class",
                    "superclass": "Geometry",
                    "description": "Physics.geometry('circle')\n\nThe circle geometry has a circular shape.\n\nAdditional options include:\n- radius: the radius\n\nExample:\n\n```javascript\nvar round = Physics.body('circle', {\n    x: 30,\n    y: 20,\n    radius: 5\n});\n```",
                    "short_description": "Physics.geometry('circle')\n",
                    "line": 21,
                    "aliases": [],
                    "children": [],
                    "file": "src/geometries/circle.js",
                    "subclasses": [],
                    "name": "CircleGeometry",
                    "path": "CircleGeometry",
                    "outFile": "circle.html"
                  },
                  {
                    "id": "CompoundGeometry",
                    "type": "class",
                    "superclass": "Geometry",
                    "description": "Physics.geometry('compound')\n\nGeometry for compound shapes.\n\nExample:\n\n```javascript\nvar thing = Physics.geometry('compound');\nthing.addChild( child, pos, rotation );\n```",
                    "short_description": "Physics.geometry('compound')\n",
                    "line": 15,
                    "aliases": [],
                    "children": [
                      {
                        "id": "CompoundGeometry#addChild",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "geometry",
                                "types": [
                                  "Geometry"
                                ],
                                "description": " The child to add.\n\n     "
                              },
                              {
                                "name": "pos",
                                "types": [
                                  "Physics.vector"
                                ],
                                "description": " The position to add the child at.\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " The child to add.\n\n     "
                          },
                          {
                            "name": "pos",
                            "types": [
                              "Physics.vector"
                            ],
                            "description": " The position to add the child at.\n\n     "
                          },
                          {
                            "name": "angle",
                            "types": [
                              "Number"
                            ],
                            "description": " The rotation angle\n\n     "
                          }
                        ],
                        "description": "Add a child at relative position.",
                        "short_description": "Add a child at relative position.",
                        "line": 45,
                        "aliases": [],
                        "children": [],
                        "file": "src/geometries/compound.js",
                        "name": "addChild",
                        "name_prefix": "CompoundGeometry#",
                        "path": "CompoundGeometry.prototype.addChild",
                        "outFile": "compound.html#CompoundGeometry.prototype.addChild"
                      },
                      {
                        "id": "CompoundGeometry#clear",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "description": "Remove all children.",
                        "short_description": "Remove all children.",
                        "line": 62,
                        "aliases": [],
                        "children": [],
                        "file": "src/geometries/compound.js",
                        "name": "clear",
                        "name_prefix": "CompoundGeometry#",
                        "path": "CompoundGeometry.prototype.clear",
                        "outFile": "compound.html#CompoundGeometry.prototype.clear"
                      }
                    ],
                    "file": "src/geometries/compound.js",
                    "subclasses": [],
                    "name": "CompoundGeometry",
                    "path": "CompoundGeometry",
                    "outFile": "compound.html"
                  },
                  {
                    "id": "ConvexPolygonGeometry",
                    "type": "class",
                    "superclass": "Geometry",
                    "description": "Physics.geometry('convex-polygon')\n\nGeometry for convex polygons.\n\nAdditional config options:\n\n- vertices: Array of [[Vectorish]] objects representing the polygon vertices in clockwise (or counterclockwise) order.\n\nExample:\n\n```javascript\nvar pentagon = Physics.geometry('convex-polygon', {\n    // the centroid is automatically calculated and used to position the shape\n    vertices: [\n        { x: 0, y: -30 },\n        { x: -29, y: -9 },\n        { x: -18, y: 24 },\n        { x: 18, y: 24 },\n        { x: 29, y: -9 }\n    ]\n});\n```",
                    "short_description": "Physics.geometry('convex-polygon')\n",
                    "line": 27,
                    "aliases": [],
                    "children": [
                      {
                        "id": "ConvexPolygonGeometry#setVertices",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "hull",
                                "types": [
                                  "Array"
                                ],
                                "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "hull",
                            "types": [
                              "Array"
                            ],
                            "description": " Vertices represented by an array of [[Vectorish]] objects, in either clockwise or counterclockwise order\n\n     "
                          }
                        ],
                        "description": "Set the vertices of this polygon.",
                        "short_description": "Set the vertices of this polygon.",
                        "line": 61,
                        "aliases": [],
                        "children": [],
                        "file": "src/geometries/convex-polygon.js",
                        "name": "setVertices",
                        "name_prefix": "ConvexPolygonGeometry#",
                        "path": "ConvexPolygonGeometry.prototype.setVertices",
                        "outFile": "convex-polygon.html#ConvexPolygonGeometry.prototype.setVertices"
                      }
                    ],
                    "file": "src/geometries/convex-polygon.js",
                    "subclasses": [],
                    "name": "ConvexPolygonGeometry",
                    "path": "ConvexPolygonGeometry",
                    "outFile": "convex-polygon.html"
                  },
                  {
                    "id": "PointGeometry",
                    "type": "class",
                    "superclass": "Geometry",
                    "alias_of": "Geometry",
                    "description": "Physics.geometry('point')\n\nThe point geometry represents a point.",
                    "short_description": "Physics.geometry('point')\n",
                    "line": 8,
                    "aliases": [],
                    "children": [],
                    "file": "src/geometries/point.js",
                    "subclasses": [],
                    "name": "PointGeometry",
                    "path": "PointGeometry",
                    "outFile": "point.html"
                  },
                  {
                    "id": "RectangleGeometry",
                    "type": "class",
                    "superclass": "Geometry",
                    "description": "Physics.geometry('rectangle')\n\nGeometry for rectangles.\n\nAdditional config options:\n\n- width: The width\n- height: The height\n\nExample:\n\n```javascript\nvar rectGeo = Physics.geometry('rectangle', {\n    width: 30,\n    height: 40\n});\n```",
                    "short_description": "Physics.geometry('rectangle')\n",
                    "line": 22,
                    "aliases": [],
                    "children": [
                      {
                        "id": "RectangleGeometry#height",
                        "type": "constant",
                        "signatures": [
                          {
                            "returns": [
                              {
                                "type": "Number"
                              }
                            ]
                          }
                        ],
                        "description": "The height",
                        "short_description": "The height",
                        "line": 51,
                        "aliases": [],
                        "children": [],
                        "file": "src/geometries/rectangle.js",
                        "name": "height",
                        "name_prefix": "RectangleGeometry#",
                        "path": "RectangleGeometry.prototype.height",
                        "outFile": "rectangle.html#RectangleGeometry.prototype.height"
                      },
                      {
                        "id": "RectangleGeometry#width",
                        "type": "constant",
                        "signatures": [
                          {
                            "returns": [
                              {
                                "type": "Number"
                              }
                            ]
                          }
                        ],
                        "description": "The width",
                        "short_description": "The width",
                        "line": 45,
                        "aliases": [],
                        "children": [],
                        "file": "src/geometries/rectangle.js",
                        "name": "width",
                        "name_prefix": "RectangleGeometry#",
                        "path": "RectangleGeometry.prototype.width",
                        "outFile": "rectangle.html#RectangleGeometry.prototype.width"
                      }
                    ],
                    "file": "src/geometries/rectangle.js",
                    "subclasses": [],
                    "name": "RectangleGeometry",
                    "path": "RectangleGeometry",
                    "outFile": "rectangle.html"
                  }
                ],
                "file": "src/core/geometry.js",
                "subclasses": [
                  "CircleGeometry",
                  "CompoundGeometry",
                  "ConvexPolygonGeometry",
                  "PointGeometry",
                  "RectangleGeometry"
                ],
                "name": "Geometry",
                "path": "Geometry",
                "outFile": "geometry.html"
              }
            ],
            "file": "src/core/geometry.js",
            "name": "geometry",
            "name_prefix": "Physics.",
            "path": "Physics.geometry",
            "outFile": "geometry.html#Physics.geometry"
          },
          {
            "id": "Physics.gjk",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "support",
                    "arguments": [
                      {
                        "name": "axis"
                      }
                    ],
                    "callback": true,
                    "types": [
                      "Function"
                    ],
                    "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
                  },
                  {
                    "name": "seed",
                    "optional": true,
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
                  },
                  {
                    "name": "checkOverlapOnly",
                    "optional": true,
                    "types": [
                      "Boolean"
                    ],
                    "description": " only check whether there is an overlap, don't calculate the depth\n\n "
                  },
                  {
                    "name": "debugFn",
                    "optional": true,
                    "types": [
                      "Function"
                    ],
                    "description": " For debugging. Called at every iteration with the current simplex.\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Object"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "support",
                "types": [
                  "Function"
                ],
                "description": " The support function. Must return an object containing\n\n   the witness points (`.a`, `.b`) and the support point (`.pt`).\n\n   Recommended to use simple objects.\n\n   Eg:\n\n   ```javascript\n\n   return {\n\n        a: { x: 1, y:2 },\n\n        b: { x: 3, y: 4 },\n\n        pt: { x: 2, y: 2 }\n\n   };\n\n   ```\n\n "
              },
              {
                "name": "axis",
                "types": [
                  "Physics.vector"
                ],
                "description": " The axis to search\n\n "
              },
              {
                "name": "seed",
                "types": [
                  "Physics.vector"
                ],
                "description": " The starting direction for the simplex (defaults to x-axis)\n\n "
              },
              {
                "name": "checkOverlapOnly",
                "types": [
                  "Boolean"
                ],
                "description": " only check whether there is an overlap, don't calculate the depth\n\n "
              },
              {
                "name": "debugFn",
                "types": [
                  "Function"
                ],
                "description": " For debugging. Called at every iteration with the current simplex.\n\n "
              }
            ],
            "description": "Implementation agnostic GJK function.\n\nGilbert–Johnson–Keerthi object collison algorithm\nFor general information about GJK see:\n- [www.codezealot.org/archives/88](http://www.codezealot.org/archives/88)\n- [mollyrocket.com/849](http://mollyrocket.com/849)\n\nThe algorithm information returned:\n```javascript\n{\n    overlap: Boolean,\n    simplex: [] // array containing simplex points as simple x/y objects\n}\n```",
            "short_description": "Implementation agnostic GJK function.\n",
            "line": 134,
            "aliases": [],
            "children": [],
            "file": "src/math/gjk.js",
            "name": "gjk",
            "name_prefix": "Physics.",
            "path": "Physics.gjk",
            "outFile": "gjk.html#Physics.gjk"
          },
          {
            "id": "Physics.integrator",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the integrator to create\n\n "
                  },
                  {
                    "name": "options",
                    "optional": true,
                    "types": [
                      "Object"
                    ],
                    "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Integrator"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "name",
                "types": [
                  "String"
                ],
                "description": " The name of the integrator to create\n\n "
              },
              {
                "name": "options",
                "types": [
                  "Object"
                ],
                "description": " The configuration for that integrator ( depends on integrator ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // drag applied during integration\n\n        // 0 means vacuum\n\n        // 0.9 means molasses\n\n        drag: 0\n\n    }\n\n   ```\n\n "
              }
            ],
            "related_to": "Physics.util.decorator",
            "description": "Factory function for creating Integrators.\n\nVisit [the PhysicsJS wiki on Integrators](https://github.com/wellcaffeinated/PhysicsJS/wiki/Integrators)\nfor usage documentation.",
            "short_description": "Factory function for creating Integrators.\n",
            "line": 31,
            "aliases": [],
            "children": [
              {
                "id": "Integrator",
                "type": "class",
                "belongs_to": "Physics.integrator",
                "description": "The base class for integrators created by [[Physics.integrator]] factory function.",
                "short_description": "The base class for integrators created by [[Physics.integrator]] factory function.",
                "line": 38,
                "aliases": [],
                "children": [
                  {
                    "id": "Integrator#connect",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Physics.world"
                            ],
                            "description": " The world to connect to\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Physics.world"
                        ],
                        "description": " The world to connect to\n\n     "
                      }
                    ],
                    "description": "Connect to a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
                    "short_description": "Connect to a world.\n",
                    "line": 134,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "connect",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.connect",
                    "outFile": "integrator.html#Integrator.prototype.connect"
                  },
                  {
                    "id": "Integrator#disconnect",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Physics.world"
                            ],
                            "description": " The world to disconnect from\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Physics.world"
                        ],
                        "description": " The world to disconnect from\n\n     "
                      }
                    ],
                    "description": "Disconnect from a world.\n\nExtend this when creating integrators if you need to specify pubsub management.\nAutomatically called when added to world by the [[Integrator#setWorld]] method.",
                    "short_description": "Disconnect from a world.\n",
                    "line": 145,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "disconnect",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.disconnect",
                    "outFile": "integrator.html#Integrator.prototype.disconnect"
                  },
                  {
                    "id": "Integrator#init",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration options passed by the factory\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration options passed by the factory\n\n     "
                      }
                    ],
                    "internal": true,
                    "description": "Initialization. Internal use.",
                    "short_description": "Initialization. Internal use.",
                    "line": 45,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "init",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.init",
                    "outFile": "integrator.html#Integrator.prototype.init"
                  },
                  {
                    "id": "Integrator#integrate",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " List of bodies to integrate\n\n     "
                          },
                          {
                            "name": "dt",
                            "types": [
                              "Number"
                            ],
                            "description": " Timestep size\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "bodies",
                        "types": [
                          "Array"
                        ],
                        "description": " List of bodies to integrate\n\n     "
                      },
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " Timestep size\n\n     "
                      }
                    ],
                    "description": "Integrate bodies by timestep.\n\nWill emit `integrate:velocities` and `integrate:positions`\nevents on the world.",
                    "short_description": "Integrate bodies by timestep.\n",
                    "line": 44,
                    "aliases": [],
                    "children": [],
                    "file": "src/integrators/velocity-verlet.js",
                    "name": "integrate",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.integrate",
                    "outFile": "velocity-verlet.html#Integrator.prototype.integrate"
                  },
                  {
                    "id": "Integrator#integratePositions",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " List of bodies to integrate\n\n     "
                          },
                          {
                            "name": "dt",
                            "types": [
                              "Number"
                            ],
                            "description": " Timestep size\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "bodies",
                        "types": [
                          "Array"
                        ],
                        "description": " List of bodies to integrate\n\n     "
                      },
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " Timestep size\n\n     "
                      }
                    ],
                    "description": "Just integrate the positions.\n\nCalled after [[Integrator#integrateVelocities]].\n\nShould be overridden when creating integrators.",
                    "short_description": "Just integrate the positions.\n",
                    "line": 172,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "integratePositions",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.integratePositions",
                    "outFile": "integrator.html#Integrator.prototype.integratePositions"
                  },
                  {
                    "id": "Integrator#integrateVelocities",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " List of bodies to integrate\n\n     "
                          },
                          {
                            "name": "dt",
                            "types": [
                              "Number"
                            ],
                            "description": " Timestep size\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "bodies",
                        "types": [
                          "Array"
                        ],
                        "description": " List of bodies to integrate\n\n     "
                      },
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " Timestep size\n\n     "
                      }
                    ],
                    "description": "Just integrate the velocities.\n\nShould be overridden when creating integrators.",
                    "short_description": "Just integrate the velocities.\n",
                    "line": 156,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "integrateVelocities",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.integrateVelocities",
                    "outFile": "integrator.html#Integrator.prototype.integrateVelocities"
                  },
                  {
                    "id": "Integrator#options",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The options to set as an object\n\n         "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object",
                            "description": " The options\n\n         "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The options to set as an object\n\n         "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " The options\n\n         "
                      }
                    ],
                    "related_to": "Physics.util.options",
                    "description": "Set options on this instance.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                    "short_description": "Set options on this instance.\n",
                    "line": 63,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "options",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.options",
                    "outFile": "integrator.html#Integrator.prototype.options"
                  },
                  {
                    "id": "Integrator#setWorld",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Object"
                            ],
                            "description": " The world (or null)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Object"
                        ],
                        "description": " The world (or null)\n\n     "
                      }
                    ],
                    "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                    "short_description": "Set which world to apply to.\n",
                    "line": 75,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/integrator.js",
                    "name": "setWorld",
                    "name_prefix": "Integrator#",
                    "path": "Integrator.prototype.setWorld",
                    "outFile": "integrator.html#Integrator.prototype.setWorld"
                  },
                  {
                    "id": "ImprovedEuler",
                    "type": "class",
                    "superclass": "Integrator",
                    "description": "`Physics.integrator('improved-euler')`.\n\nThe improved euler integrator.",
                    "short_description": "`Physics.integrator('improved-euler')`.\n",
                    "line": 11,
                    "aliases": [],
                    "children": [],
                    "file": "src/integrators/improved-euler.js",
                    "subclasses": [],
                    "name": "ImprovedEuler",
                    "path": "ImprovedEuler",
                    "outFile": "improved-euler.html"
                  },
                  {
                    "id": "VelocityVerlet",
                    "type": "class",
                    "superclass": "Integrator",
                    "description": "`Physics.integrator('velocity-verlet')`.\n\nThe velocity-verlet integrator.",
                    "short_description": "`Physics.integrator('velocity-verlet')`.\n",
                    "line": 26,
                    "aliases": [],
                    "children": [],
                    "file": "src/integrators/velocity-verlet.js",
                    "subclasses": [],
                    "name": "VelocityVerlet",
                    "path": "VelocityVerlet",
                    "outFile": "velocity-verlet.html"
                  },
                  {
                    "id": "Verlet",
                    "type": "class",
                    "superclass": "Integrator",
                    "description": "`Physics.integrator('verlet')`.\n\nThe verlet integrator.",
                    "short_description": "`Physics.integrator('verlet')`.\n",
                    "line": 26,
                    "aliases": [],
                    "children": [],
                    "file": "src/integrators/verlet.js",
                    "subclasses": [],
                    "name": "Verlet",
                    "path": "Verlet",
                    "outFile": "verlet.html"
                  }
                ],
                "file": "src/core/integrator.js",
                "subclasses": [
                  "ImprovedEuler",
                  "VelocityVerlet",
                  "Verlet"
                ],
                "name": "Integrator",
                "path": "Integrator",
                "outFile": "integrator.html"
              }
            ],
            "file": "src/core/integrator.js",
            "name": "integrator",
            "name_prefix": "Physics.",
            "path": "Physics.integrator",
            "outFile": "integrator.html#Physics.integrator"
          },
          {
            "id": "Physics.noConflict",
            "type": "class method",
            "signatures": [
              {
                "arguments": [],
                "returns": [
                  {
                    "type": "Physics"
                  }
                ]
              }
            ],
            "description": "Restore the original reference to the global window.Physics variable.\n\nDoes nothing if PhysicsJS doesn't have a reference in global scope",
            "short_description": "Restore the original reference to the global window.Physics variable.\n",
            "line": 12,
            "aliases": [],
            "children": [],
            "file": "src/util/noconflict.js",
            "name": "noConflict",
            "name_prefix": "Physics.",
            "path": "Physics.noConflict",
            "outFile": "noconflict.html#Physics.noConflict"
          },
          {
            "id": "Physics.query",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "rules",
                    "types": [
                      "Object"
                    ],
                    "description": " The mongodb-like search rules. (See description).\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Function",
                    "description": " The test function\n\n "
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "rules",
                "types": [
                  "Object"
                ],
                "description": " The mongodb-like search rules. (See description).\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function",
                "description": " The test function\n\n "
              }
            ],
            "related_to": "Physics.world#find",
            "description": "Creates a function that can be used to perform tests on objects.\n\nThe test function will return a [[Boolean]]; `true` if the object matches the tests.\n\nQuery rules are mongodb-like. You can specify a hash of values to match like this:\n\n```javascript\n{\n    foo: 'bar',\n    baz: 2,\n    some: {\n        nested: 'value'\n    }\n}\n```\n\nAnd they will all need to match (it's an AND rule).\n\nYou can also use operators for more versatility. The operators you can use include:\n\n- $eq: Test if some property is equal to a value (this is done by default, and is thus redundant)\n- $ne: Test if some property is _NOT_ equal to a value\n- $in: Test if some value (or array of values) is one of the specified array of values\n- $nin: Test if some value (or array of values) is _NOT_ one of the specified array of values\n- $at: Test if a body's [[Physics.aabb]] includes specified point. It's a primative hit-test.\n\nExample:\n\n```javascript\nvar wheelsArray = [];\n\nvar queryFn = Physics.query({\n    name: 'circle', // only circles\n    $nin: wheelsArray, // not in the wheelsArray\n    labels: { $in: [ 'player', 'monster' ] } // that have player OR monster labels\n});\n\nvar obj = {\n    name: 'circle',\n    labels: [ 'round' ]\n};\n\nqueryFn( obj ); // -> false\n// give it a player tag\nobj.labels.push('player');\nqueryFn( obj ); // -> true\n// put it inside the wheelsArray\nwheelsArray.push( obj );\nqueryFn( obj ); // -> false\n```",
            "short_description": "Creates a function that can be used to perform tests on objects.\n",
            "line": 262,
            "aliases": [],
            "children": [],
            "file": "src/core/query.js",
            "name": "query",
            "name_prefix": "Physics.",
            "path": "Physics.query",
            "outFile": "query.html#Physics.query"
          },
          {
            "id": "Physics.renderer",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the renderer to create\n\n "
                  },
                  {
                    "name": "options",
                    "optional": true,
                    "types": [
                      "Object"
                    ],
                    "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Renderer"
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "name",
                "types": [
                  "String"
                ],
                "description": " The name of the renderer to create\n\n "
              },
              {
                "name": "options",
                "types": [
                  "Object"
                ],
                "description": " The configuration for that renderer ( depends on renderer ).\n\n   Available options and defaults:\n\n\n\n   ```javascript\n\n    {\n\n        // draw meta data (fps, steps, etc)\n\n        meta: false,\n\n        // refresh rate of meta info\n\n        metaRefresh: 200,\n\n\n\n        // width of viewport\n\n        width: 600,\n\n        // height of viewport\n\n        height: 600\n\n        // automatically resize the renderer\n\n        autoResize: true\n\n    }\n\n   ```\n\n "
              }
            ],
            "related_to": "Physics.util.decorator",
            "description": "Factory function for creating Renderers.\n\nVisit [the PhysicsJS wiki on Renderers](https://github.com/wellcaffeinated/PhysicsJS/wiki/Renderers)\nfor usage documentation.",
            "short_description": "Factory function for creating Renderers.\n",
            "line": 44,
            "aliases": [],
            "children": [
              {
                "id": "Renderer",
                "type": "class",
                "belongs_to": "Physics.renderer",
                "description": "The base class for renderers created by [[Physics.renderer]] factory function.",
                "short_description": "The base class for renderers created by [[Physics.renderer]] factory function.",
                "line": 51,
                "aliases": [],
                "children": [
                  {
                    "id": "Renderer#createView",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " geometry The geometry\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object",
                              "String"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Mixed",
                            "description": " Whatever the renderer needs to render the body.\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "geometry",
                        "types": [
                          "Geometry"
                        ],
                        "description": " geometry The geometry\n\n     "
                      },
                      {
                        "name": "styles",
                        "types": [
                          "Object",
                          "String"
                        ],
                        "description": " The styles configuration\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Mixed",
                        "description": " Whatever the renderer needs to render the body.\n\n     "
                      }
                    ],
                    "description": "Create a view for the specified geometry.\n\nThe view is used to render the body. It is a cached version\nof the body that gets moved and rotated according to the simulation.\n\nThe styles are used to modify the appearance of the view.\nThey depend on the renderer.\n\nOverride this when creating renderers.",
                    "short_description": "Create a view for the specified geometry.\n",
                    "line": 182,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "createView",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.createView",
                    "outFile": "renderer.html#Renderer.prototype.createView"
                  },
                  {
                    "id": "Renderer#drawBody",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "body",
                            "types": [
                              "Object"
                            ],
                            "description": " The body to draw\n\n     "
                          },
                          {
                            "name": "view",
                            "types": [
                              "Object"
                            ],
                            "description": " The view for the body\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "body",
                        "types": [
                          "Object"
                        ],
                        "description": " The body to draw\n\n     "
                      },
                      {
                        "name": "view",
                        "types": [
                          "Object"
                        ],
                        "description": " The view for the body\n\n     "
                      }
                    ],
                    "description": "Draw specified body using specified view.\n\nOverride this when creating renderers.",
                    "short_description": "Draw specified body using specified view.\n",
                    "line": 226,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "drawBody",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.drawBody",
                    "outFile": "renderer.html#Renderer.prototype.drawBody"
                  },
                  {
                    "id": "Renderer#drawMeta",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "meta",
                            "types": [
                              "Object"
                            ],
                            "description": " The meta data\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "meta",
                        "types": [
                          "Object"
                        ],
                        "description": " The meta data\n\n     "
                      }
                    ],
                    "description": "Draw the meta data.\n\nThe meta data will look like this:\n\n```javascript\nmeta = {\n    fps: 60, // the frames per second\n    ipf: 4 // the number of iterations per frame\n};\n```\n\nOverride this when creating renderers.",
                    "short_description": "Draw the meta data.\n",
                    "line": 209,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "drawMeta",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.drawMeta",
                    "outFile": "renderer.html#Renderer.prototype.drawMeta"
                  },
                  {
                    "id": "Renderer#init",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration options passed by the factory\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "options",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration options passed by the factory\n\n     "
                      }
                    ],
                    "internal": true,
                    "description": "Initialization. Internal use.",
                    "short_description": "Initialization. Internal use.",
                    "line": 58,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "init",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.init",
                    "outFile": "renderer.html#Renderer.prototype.init"
                  },
                  {
                    "id": "Renderer#render",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "bodies",
                            "types": [
                              "Array"
                            ],
                            "description": " Array of bodies in the world (by reference!)\n\n     "
                          },
                          {
                            "name": "meta",
                            "types": [
                              "Object"
                            ],
                            "description": " meta information\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "bodies",
                        "types": [
                          "Array"
                        ],
                        "description": " Array of bodies in the world (by reference!)\n\n     "
                      },
                      {
                        "name": "meta",
                        "types": [
                          "Object"
                        ],
                        "description": " meta information\n\n     "
                      }
                    ],
                    "description": "Render the world bodies and meta. Called by world.render()",
                    "short_description": "Render the world bodies and meta. Called by world.render()",
                    "line": 129,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "render",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.render",
                    "outFile": "renderer.html#Renderer.prototype.render"
                  },
                  {
                    "id": "Renderer#resize",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "width",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The width in px\n\n     "
                          },
                          {
                            "name": "height",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The height in px\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "width",
                        "types": [
                          "Number"
                        ],
                        "description": " The width in px\n\n     "
                      },
                      {
                        "name": "height",
                        "types": [
                          "Number"
                        ],
                        "description": " The height in px\n\n     "
                      }
                    ],
                    "description": "Set the dimensions of the renderer.\n\nIf no dimensions are specified it will auto resize.",
                    "short_description": "Set the dimensions of the renderer.\n",
                    "line": 87,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "resize",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.resize",
                    "outFile": "renderer.html#Renderer.prototype.resize"
                  },
                  {
                    "id": "Renderer#setWorld",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "world",
                            "types": [
                              "Object"
                            ],
                            "description": " The world (or null)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "world",
                        "types": [
                          "Object"
                        ],
                        "description": " The world (or null)\n\n     "
                      }
                    ],
                    "description": "Set which world to apply to.\n\nUsually this is called internally. Shouldn't be a need to call this yourself usually.",
                    "short_description": "Set which world to apply to.\n",
                    "line": 107,
                    "aliases": [],
                    "children": [],
                    "file": "src/core/renderer.js",
                    "name": "setWorld",
                    "name_prefix": "Renderer#",
                    "path": "Renderer.prototype.setWorld",
                    "outFile": "renderer.html#Renderer.prototype.setWorld"
                  },
                  {
                    "id": "CanvasRenderer",
                    "type": "class",
                    "superclass": "Renderer",
                    "description": "Physics.renderer('canvas')\n\nRenderer that uses HTMLCanvas to render the world bodies.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50\n   }\n});\n```",
                    "short_description": "Physics.renderer('canvas')\n",
                    "line": 68,
                    "aliases": [],
                    "children": [
                      {
                        "id": "CanvasRenderer#addLayer",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "id",
                                "types": [
                                  "String"
                                ],
                                "description": " The id for the layer\n\n     "
                              },
                              {
                                "name": "el",
                                "optional": true,
                                "types": [
                                  "HTMLElement"
                                ],
                                "description": " The canvas element to use for this layer\n\n     "
                              },
                              {
                                "name": "opts",
                                "optional": true,
                                "types": [
                                  "Object"
                                ],
                                "description": " The options for this layer (see below)\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Layer"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "id",
                            "types": [
                              "String"
                            ],
                            "description": " The id for the layer\n\n     "
                          },
                          {
                            "name": "el",
                            "types": [
                              "HTMLElement"
                            ],
                            "description": " The canvas element to use for this layer\n\n     "
                          },
                          {
                            "name": "opts",
                            "types": [
                              "Object"
                            ],
                            "description": " The options for this layer (see below)\n\n     "
                          }
                        ],
                        "description": "Create a new layer.\n\nLayers can have the following options:\n\n- width: The width\n- height: The height\n- manual: Draw manually (default: `false`)\n- autoResize: Automatically resize the layer when the renderer's [[CanvasRenderer#resize]] method is called. (default: `true`)\n- follow: A [[Body]]. Offset this layer's rendering to follow a body's position. (default: `null`)\n- offset: The offset [[Vectorish]] for this layer. (default: `null`)\n- scale: Scale the layer by this amount. (default: `1`)\n- zIndex: The zIndex for the layer's HTMLElement. (default: `1`)",
                        "short_description": "Create a new layer.\n",
                        "line": 226,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "addLayer",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.addLayer",
                        "outFile": "canvas.html#CanvasRenderer.prototype.addLayer"
                      },
                      {
                        "id": "CanvasRenderer#draw",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "geometry",
                                "types": [
                                  "Geometry"
                                ],
                                "description": " The shape to draw\n\n     "
                              },
                              {
                                "name": "styles",
                                "optional": true,
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              },
                              {
                                "name": "offset",
                                "optional": true,
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " The offset from center\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " The shape to draw\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          },
                          {
                            "name": "offset",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The offset from center\n\n     "
                          }
                        ],
                        "description": "Draw a geometry to a context.",
                        "short_description": "Draw a geometry to a context.",
                        "line": 630,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "draw",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.draw",
                        "outFile": "canvas.html#CanvasRenderer.prototype.draw"
                      },
                      {
                        "id": "CanvasRenderer#drawCircle",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "types": [
                                  "Number"
                                ],
                                "description": " The x coord\n\n     "
                              },
                              {
                                "name": "y",
                                "types": [
                                  "Number"
                                ],
                                "description": " The y coord\n\n     "
                              },
                              {
                                "name": "r",
                                "types": [
                                  "Number"
                                ],
                                "description": " The circle radius\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "x",
                            "types": [
                              "Number"
                            ],
                            "description": " The x coord\n\n     "
                          },
                          {
                            "name": "y",
                            "types": [
                              "Number"
                            ],
                            "description": " The y coord\n\n     "
                          },
                          {
                            "name": "r",
                            "types": [
                              "Number"
                            ],
                            "description": " The circle radius\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          }
                        ],
                        "description": "Draw a circle to specified canvas context.",
                        "short_description": "Draw a circle to specified canvas context.",
                        "line": 514,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "drawCircle",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.drawCircle",
                        "outFile": "canvas.html#CanvasRenderer.prototype.drawCircle"
                      },
                      {
                        "id": "CanvasRenderer#drawLine",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "from",
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " The starting pt\n\n     "
                              },
                              {
                                "name": "to",
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " The ending pt\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "from",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The starting pt\n\n     "
                          },
                          {
                            "name": "to",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " The ending pt\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          }
                        ],
                        "description": "Draw a line onto specified canvas context.",
                        "short_description": "Draw a line onto specified canvas context.",
                        "line": 599,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "drawLine",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.drawLine",
                        "outFile": "canvas.html#CanvasRenderer.prototype.drawLine"
                      },
                      {
                        "id": "CanvasRenderer#drawPolygon",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "verts",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array of [[Vectorish]] vertices\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "verts",
                            "types": [
                              "Array"
                            ],
                            "description": " Array of [[Vectorish]] vertices\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          }
                        ],
                        "description": "Draw a polygon to specified canvas context.",
                        "short_description": "Draw a polygon to specified canvas context.",
                        "line": 534,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "drawPolygon",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.drawPolygon",
                        "outFile": "canvas.html#CanvasRenderer.prototype.drawPolygon"
                      },
                      {
                        "id": "CanvasRenderer#drawRect",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "types": [
                                  "Number"
                                ],
                                "description": " The x coord\n\n     "
                              },
                              {
                                "name": "y",
                                "types": [
                                  "Number"
                                ],
                                "description": " The y coord\n\n     "
                              },
                              {
                                "name": "width",
                                "types": [
                                  "Number"
                                ],
                                "description": " The width\n\n     "
                              },
                              {
                                "name": "height",
                                "types": [
                                  "Number"
                                ],
                                "description": " The height\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "x",
                            "types": [
                              "Number"
                            ],
                            "description": " The x coord\n\n     "
                          },
                          {
                            "name": "y",
                            "types": [
                              "Number"
                            ],
                            "description": " The y coord\n\n     "
                          },
                          {
                            "name": "width",
                            "types": [
                              "Number"
                            ],
                            "description": " The width\n\n     "
                          },
                          {
                            "name": "height",
                            "types": [
                              "Number"
                            ],
                            "description": " The height\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          }
                        ],
                        "description": "Draw a rectangle to specified canvas context.",
                        "short_description": "Draw a rectangle to specified canvas context.",
                        "line": 575,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "drawRect",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.drawRect",
                        "outFile": "canvas.html#CanvasRenderer.prototype.drawRect"
                      },
                      {
                        "id": "CanvasRenderer#layer",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "id",
                                "types": [
                                  "String"
                                ],
                                "description": " The id for the layer\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Layer"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "id",
                            "types": [
                              "String"
                            ],
                            "description": " The id for the layer\n\n     "
                          }
                        ],
                        "description": "Get the layer by id.",
                        "short_description": "Get the layer by id.",
                        "line": 198,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "layer",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.layer",
                        "outFile": "canvas.html#CanvasRenderer.prototype.layer"
                      },
                      {
                        "id": "CanvasRenderer#removeLayer",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "id",
                                "types": [
                                  "String"
                                ],
                                "description": " The id for the layer\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          },
                          {
                            "arguments": [
                              {
                                "name": "layer",
                                "types": [
                                  "Layer"
                                ],
                                "description": " The layer\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "id",
                            "types": [
                              "String"
                            ],
                            "description": " The id for the layer\n\n     "
                          },
                          {
                            "name": "layer",
                            "types": [
                              "Layer"
                            ],
                            "description": " The layer\n\n     "
                          }
                        ],
                        "description": "Remove a layer.",
                        "short_description": "Remove a layer.",
                        "line": 444,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "removeLayer",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.removeLayer",
                        "outFile": "canvas.html#CanvasRenderer.prototype.removeLayer"
                      },
                      {
                        "id": "CanvasRenderer#resize",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "width",
                                "types": [
                                  "Number"
                                ],
                                "description": " The width\n\n     "
                              },
                              {
                                "name": "height",
                                "types": [
                                  "Number"
                                ],
                                "description": " The height\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "width",
                            "types": [
                              "Number"
                            ],
                            "description": " The width\n\n     "
                          },
                          {
                            "name": "height",
                            "types": [
                              "Number"
                            ],
                            "description": " The height\n\n     "
                          }
                        ],
                        "description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                        "short_description": "Resize all layer canvases that have the `autoResize` option set to `true`.",
                        "line": 464,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "resize",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.resize",
                        "outFile": "canvas.html#CanvasRenderer.prototype.resize"
                      },
                      {
                        "id": "CanvasRenderer#setStyle",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "styles",
                                "types": [
                                  "Object",
                                  "String"
                                ],
                                "description": " Styles to set on the canvas context\n\n     "
                              },
                              {
                                "name": "ctx",
                                "optional": true,
                                "types": [
                                  "Canvas2DContext"
                                ],
                                "description": " The canvas context\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "styles",
                            "types": [
                              "Object",
                              "String"
                            ],
                            "description": " Styles to set on the canvas context\n\n     "
                          },
                          {
                            "name": "ctx",
                            "types": [
                              "Canvas2DContext"
                            ],
                            "description": " The canvas context\n\n     "
                          }
                        ],
                        "description": "Set styles on the specified canvas context (or main context).",
                        "short_description": "Set styles on the specified canvas context (or main context).",
                        "line": 488,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/canvas.js",
                        "name": "setStyle",
                        "name_prefix": "CanvasRenderer#",
                        "path": "CanvasRenderer.prototype.setStyle",
                        "outFile": "canvas.html#CanvasRenderer.prototype.setStyle"
                      },
                      {
                        "id": "Layer",
                        "type": "class",
                        "belongs_to": "CanvasRenderer",
                        "description": "A rendering layer for the canvas renderer.\n\nCreate by calling [[CanvasRenderer#addLayer]].",
                        "short_description": "A rendering layer for the canvas renderer.\n",
                        "line": 235,
                        "aliases": [],
                        "children": [
                          {
                            "id": "Layer#addToStack",
                            "type": "instance method",
                            "signatures": [
                              {
                                "arguments": [
                                  {
                                    "name": "arr",
                                    "types": [
                                      "Array"
                                    ],
                                    "description": " Array of bodies to add\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "body",
                                    "types": [
                                      "Body"
                                    ],
                                    "description": " Body to add\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              }
                            ],
                            "arguments": [
                              {
                                "name": "body",
                                "types": [
                                  "Body"
                                ],
                                "description": " Body to add\n\n         "
                              },
                              {
                                "name": "arr",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array of bodies to add\n\n         "
                              }
                            ],
                            "description": "Add body (bodies) to the rendering stack for this layer.\n\nBodies must be added to the stack in order to be rendered by this layer UNLESS it is the \"main\" layer.",
                            "short_description": "Add body (bodies) to the rendering stack for this layer.\n",
                            "line": 324,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "addToStack",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.addToStack",
                            "outFile": "canvas.html#Layer.prototype.addToStack"
                          },
                          {
                            "id": "Layer#bodies",
                            "type": "constant",
                            "signatures": [
                              {
                                "returns": [
                                  {
                                    "type": "Array"
                                  }
                                ]
                              }
                            ],
                            "description": "The Bodies this layer is rendering.\n\nThe \"main\" layer will render all world bodies if it's empty.",
                            "short_description": "The Bodies this layer is rendering.\n",
                            "line": 300,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "bodies",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.bodies",
                            "outFile": "canvas.html#Layer.prototype.bodies"
                          },
                          {
                            "id": "Layer#el",
                            "type": "constant",
                            "signatures": [
                              {
                                "returns": [
                                  {
                                    "type": "HTMLElement"
                                  }
                                ]
                              }
                            ],
                            "description": "The layer's Canvas",
                            "short_description": "The layer's Canvas",
                            "line": 251,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "el",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.el",
                            "outFile": "canvas.html#Layer.prototype.el"
                          },
                          {
                            "id": "Layer#id",
                            "type": "constant",
                            "signatures": [
                              {
                                "returns": [
                                  {
                                    "type": "String"
                                  }
                                ]
                              }
                            ],
                            "description": "The layer's ID",
                            "short_description": "The layer's ID",
                            "line": 245,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "id",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.id",
                            "outFile": "canvas.html#Layer.prototype.id"
                          },
                          {
                            "id": "Layer#options",
                            "type": "instance method",
                            "signatures": [
                              {
                                "arguments": [
                                  {
                                    "name": "options",
                                    "types": [
                                      "Object"
                                    ],
                                    "description": " The options to set as an object\n\n                  "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "Object",
                                    "description": " The options\n\n                  "
                                  }
                                ]
                              }
                            ],
                            "arguments": [
                              {
                                "name": "options",
                                "types": [
                                  "Object"
                                ],
                                "description": " The options to set as an object\n\n                  "
                              }
                            ],
                            "returns": [
                              {
                                "type": "Object",
                                "description": " The options\n\n                  "
                              }
                            ],
                            "related_to": "Physics.util.options",
                            "description": "Set options on this layer.\n\nAccess options directly from the options object.\n\nExample:\n\n```javascript\nthis.options.someOption;\n```",
                            "short_description": "Set options on this layer.\n",
                            "line": 267,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "options",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.options",
                            "outFile": "canvas.html#Layer.prototype.options"
                          },
                          {
                            "id": "Layer#removeFromStack",
                            "type": "instance method",
                            "signatures": [
                              {
                                "arguments": [
                                  {
                                    "name": "arr",
                                    "types": [
                                      "Array"
                                    ],
                                    "description": " Array of bodies to remove\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "body",
                                    "types": [
                                      "Body"
                                    ],
                                    "description": " Body to remove\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              }
                            ],
                            "arguments": [
                              {
                                "name": "body",
                                "types": [
                                  "Body"
                                ],
                                "description": " Body to remove\n\n         "
                              },
                              {
                                "name": "arr",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array of bodies to remove\n\n         "
                              }
                            ],
                            "description": "Remove body (bodies) from the rendering stack for this layer.",
                            "short_description": "Remove body (bodies) from the rendering stack for this layer.",
                            "line": 342,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "removeFromStack",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.removeFromStack",
                            "outFile": "canvas.html#Layer.prototype.removeFromStack"
                          },
                          {
                            "id": "Layer#render",
                            "type": "instance method",
                            "signatures": [
                              {
                                "arguments": [
                                  {
                                    "name": "clear",
                                    "optional": true,
                                    "types": [
                                      "Boolean"
                                    ],
                                    "description": " Clear the canvas (default: `true`)\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              }
                            ],
                            "arguments": [
                              {
                                "name": "clear",
                                "types": [
                                  "Boolean"
                                ],
                                "description": " Clear the canvas (default: `true`)\n\n         "
                              }
                            ],
                            "description": "Render the bodies in this layer's stack.\n\nIf you want you can replace this function with your own to do custom rendering.\n\nExample:\n\n```javascript\nlayer.render = myCustomRenderFn;\n```",
                            "short_description": "Render the bodies in this layer's stack.\n",
                            "line": 373,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "render",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.render",
                            "outFile": "canvas.html#Layer.prototype.render"
                          },
                          {
                            "id": "Layer#reset",
                            "type": "instance method",
                            "signatures": [
                              {
                                "arguments": [
                                  {
                                    "name": "arr",
                                    "optional": true,
                                    "types": [
                                      "Array"
                                    ],
                                    "description": " Array to replace the current stack of Bodies.\n\n         "
                                  }
                                ],
                                "returns": [
                                  {
                                    "type": "this"
                                  }
                                ]
                              }
                            ],
                            "arguments": [
                              {
                                "name": "arr",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array to replace the current stack of Bodies.\n\n         "
                              }
                            ],
                            "description": "Reset the stack.",
                            "short_description": "Reset the stack.",
                            "line": 308,
                            "aliases": [],
                            "children": [],
                            "file": "src/renderers/canvas.js",
                            "name": "reset",
                            "name_prefix": "Layer#",
                            "path": "Layer.prototype.reset",
                            "outFile": "canvas.html#Layer.prototype.reset"
                          }
                        ],
                        "file": "src/renderers/canvas.js",
                        "subclasses": [],
                        "name": "Layer",
                        "path": "Layer",
                        "outFile": "canvas.html"
                      }
                    ],
                    "file": "src/renderers/canvas.js",
                    "subclasses": [],
                    "name": "CanvasRenderer",
                    "path": "CanvasRenderer",
                    "outFile": "canvas.html"
                  },
                  {
                    "id": "DebugRenderer",
                    "type": "class",
                    "superclass": "Renderer",
                    "description": "Physics.renderer('debug')\n\nExtends canvas renderer with special debugging functionality.\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n- drawAABB: whether or not to draw bounding boxes. (default: `true`)\n- drawRealPosition: whether or not to draw the non-interpolated position of bodies. (default: `false`)\n- drawIntervals: whether or not to draw the broadphase (sweep-prune) intervals. (default: `false`)\n- drawContacts: whether or not to draw contact points. (default: `false`)\n- drawSleepState: whether or not to highlight sleeping bodies. (default: `false`)\n- drawBodyState: whether or not to show body position and velocity. (default: `false`)\n- aabbColor: the color of AABBs\n- realBodyStyle: styles used to draw the image of the body at its true non-interpolated position\n- intervalMinColor: color of interval minima\n- intervalMaxColor: color of interval maxima\n- mtvColor: color of minimum transit vector for contacts (overlaps)\n- contactColor: color of contact points\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n\n   'circle' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '#542437',\n       lineWidth: 1,\n       fillStyle: '#542437',\n       angleIndicator: 'white'\n   }\n}\n```",
                    "short_description": "Physics.renderer('debug')\n",
                    "line": 52,
                    "aliases": [],
                    "children": [],
                    "file": "src/renderers/debug.js",
                    "subclasses": [],
                    "name": "DebugRenderer",
                    "path": "DebugRenderer",
                    "outFile": "debug.html"
                  },
                  {
                    "id": "DomRenderer",
                    "type": "class",
                    "superclass": "Renderer",
                    "description": "Physics.renderer('dom')\n\nRenderer that manipulates DOM elements according to the physics simulation. Very primative...",
                    "short_description": "Physics.renderer('dom')\n",
                    "line": 8,
                    "aliases": [],
                    "children": [
                      {
                        "id": "DomRenderer#attach",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "HTMLElement",
                                  "Object"
                                ],
                                "description": " DOM node or event data (`data.body`)\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "HTMLElement",
                              "Object"
                            ],
                            "description": " DOM node or event data (`data.body`)\n\n     "
                          }
                        ],
                        "description": "Event callback to attach a node to the viewport",
                        "short_description": "Event callback to attach a node to the viewport",
                        "line": 242,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/dom.js",
                        "name": "attach",
                        "name_prefix": "DomRenderer#",
                        "path": "DomRenderer.prototype.attach",
                        "outFile": "dom.html#DomRenderer.prototype.attach"
                      },
                      {
                        "id": "DomRenderer#circleProperties",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "el",
                                "types": [
                                  "HTMLElement"
                                ],
                                "description": " The element\n\n     "
                              },
                              {
                                "name": "geometry",
                                "types": [
                                  "Geometry"
                                ],
                                "description": " The body's geometry\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "el",
                            "types": [
                              "HTMLElement"
                            ],
                            "description": " The element\n\n     "
                          },
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " The body's geometry\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Set dom element style properties for a circle.",
                        "short_description": "Set dom element style properties for a circle.",
                        "line": 136,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/dom.js",
                        "name": "circleProperties",
                        "name_prefix": "DomRenderer#",
                        "path": "DomRenderer.prototype.circleProperties",
                        "outFile": "dom.html#DomRenderer.prototype.circleProperties"
                      },
                      {
                        "id": "DomRenderer#detach",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "HTMLElement",
                                  "Object"
                                ],
                                "description": " DOM node or event data (`data.body`)\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "HTMLElement",
                              "Object"
                            ],
                            "description": " DOM node or event data (`data.body`)\n\n     "
                          }
                        ],
                        "description": "Event callback to detach a node from the DOM",
                        "short_description": "Event callback to detach a node from the DOM",
                        "line": 221,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/dom.js",
                        "name": "detach",
                        "name_prefix": "DomRenderer#",
                        "path": "DomRenderer.prototype.detach",
                        "outFile": "dom.html#DomRenderer.prototype.detach"
                      },
                      {
                        "id": "DomRenderer#pointProperties",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "el",
                                "types": [
                                  "HTMLElement"
                                ],
                                "description": " The element\n\n     "
                              },
                              {
                                "name": "geometry",
                                "types": [
                                  "Geometry"
                                ],
                                "description": " The body's geometry\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "el",
                            "types": [
                              "HTMLElement"
                            ],
                            "description": " The element\n\n     "
                          },
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " The body's geometry\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Set dom element style properties for a point.",
                        "short_description": "Set dom element style properties for a point.",
                        "line": 120,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/dom.js",
                        "name": "pointProperties",
                        "name_prefix": "DomRenderer#",
                        "path": "DomRenderer.prototype.pointProperties",
                        "outFile": "dom.html#DomRenderer.prototype.pointProperties"
                      },
                      {
                        "id": "DomRenderer#rectangleProperties",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "el",
                                "types": [
                                  "HTMLElement"
                                ],
                                "description": " The element\n\n     "
                              },
                              {
                                "name": "geometry",
                                "types": [
                                  "Geometry"
                                ],
                                "description": " The body's geometry\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "el",
                            "types": [
                              "HTMLElement"
                            ],
                            "description": " The element\n\n     "
                          },
                          {
                            "name": "geometry",
                            "types": [
                              "Geometry"
                            ],
                            "description": " The body's geometry\n\n     "
                          }
                        ],
                        "internal": true,
                        "description": "Set dom element style properties for a rectangle.",
                        "short_description": "Set dom element style properties for a rectangle.",
                        "line": 154,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/dom.js",
                        "name": "rectangleProperties",
                        "name_prefix": "DomRenderer#",
                        "path": "DomRenderer.prototype.rectangleProperties",
                        "outFile": "dom.html#DomRenderer.prototype.rectangleProperties"
                      }
                    ],
                    "file": "src/renderers/dom.js",
                    "subclasses": [],
                    "name": "DomRenderer",
                    "path": "DomRenderer",
                    "outFile": "dom.html"
                  },
                  {
                    "id": "PixiRenderer",
                    "type": "class",
                    "superclass": "Renderer",
                    "description": "Physics.renderer('pixi')\n\nRenderer that uses the PIXI.js library. [Documentation can be found here](https://github.com/wellcaffeinated/PhysicsJS/wiki/PIXI-Renderer).\n\nAdditional config options:\n\n- metaEl: HTMLElement to write meta information like FPS and IPF into. (default: autogenerated)\n- offset: Offset the shapes by this amount. (default: `{ x: 0, y: 0 }`)\n- styles: Styles to use to draw the shapes. (see below)\n\nThe styles property should contain _default_ styles for each shape you want to draw.\n\nExample:\n\n```javascript\nstyles: {\n   // Defines the default canvas colour\n   'color': '0x66FF99',\n\n   'circle' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C',\n       strokeAlpha: 1,\n       fillAlpha: 1\n   },\n\n   'convex-polygon' : {\n       strokeStyle: '0xE8900C',\n       lineWidth: 3,\n       fillStyle: '0xD5DE4C',\n       angleIndicator: '0xE8900C'\n   }\n}\n```\n\nStyles can also be defined on a per-body basis. Use the \"styles\" property for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       strokeStyle: '0x542437',\n       lineWidth: 1,\n       fillStyle: '0x542437',\n       angleIndicator: '0xFFFFFF'\n   }\n});\n```\n\nYou can also define an image to use for a body:\n\nExample:\n\n```javascript\nPhysics.body('circle', {\n    // ...\n    styles: {\n       src: 'path/to/image.jpg',\n       width: 40,\n       height: 50,\n       anchor: { x: 0.5, y: 0.5 }\n   }\n});\n```",
                    "short_description": "Physics.renderer('pixi')\n",
                    "line": 76,
                    "aliases": [],
                    "children": [
                      {
                        "id": "PixiRenderer#attach",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "PIXI.Graphics",
                                  "Object"
                                ],
                                "description": " Graphics object or event data (`data.body`)\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "PIXI.Graphics",
                              "Object"
                            ],
                            "description": " Graphics object or event data (`data.body`)\n\n     "
                          }
                        ],
                        "description": "Event callback to attach a child to the stage",
                        "short_description": "Event callback to attach a child to the stage",
                        "line": 239,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "attach",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.attach",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.attach"
                      },
                      {
                        "id": "PixiRenderer#centerAnchor",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "view",
                                "types": [
                                  "PIXI.DisplayObject"
                                ],
                                "description": " The view to center\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "view",
                            "types": [
                              "PIXI.DisplayObject"
                            ],
                            "description": " The view to center\n\n     "
                          }
                        ],
                        "description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                        "short_description": "Centers the anchor to {x: 0.5, y: 0.5} of a view",
                        "line": 622,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "centerAnchor",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.centerAnchor",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.centerAnchor"
                      },
                      {
                        "id": "PixiRenderer#createCircle",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "types": [
                                  "Number"
                                ],
                                "description": " The x coord\n\n     "
                              },
                              {
                                "name": "y",
                                "types": [
                                  "Number"
                                ],
                                "description": " The y coord\n\n     "
                              },
                              {
                                "name": "r",
                                "types": [
                                  "Number"
                                ],
                                "description": " The circle radius\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.Graphics",
                                "description": " A graphic object representing a circle.\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "x",
                            "types": [
                              "Number"
                            ],
                            "description": " The x coord\n\n     "
                          },
                          {
                            "name": "y",
                            "types": [
                              "Number"
                            ],
                            "description": " The y coord\n\n     "
                          },
                          {
                            "name": "r",
                            "types": [
                              "Number"
                            ],
                            "description": " The circle radius\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.Graphics",
                            "description": " A graphic object representing a circle.\n\n     "
                          }
                        ],
                        "description": "Create a circle for use in PIXI stage",
                        "short_description": "Create a circle for use in PIXI stage",
                        "line": 362,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "createCircle",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.createCircle",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.createCircle"
                      },
                      {
                        "id": "PixiRenderer#createDisplay",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "type",
                                "types": [
                                  "String"
                                ],
                                "description": " The type of PIXI.DisplayObject to make\n\n     "
                              },
                              {
                                "name": "options",
                                "types": [
                                  "Object"
                                ],
                                "description": " Options to apply to the view.\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.DisplayObject",
                                "description": " An object that is renderable.\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "type",
                            "types": [
                              "String"
                            ],
                            "description": " The type of PIXI.DisplayObject to make\n\n     "
                          },
                          {
                            "name": "options",
                            "types": [
                              "Object"
                            ],
                            "description": " Options to apply to the view.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.DisplayObject",
                            "description": " An object that is renderable.\n\n     "
                          }
                        ],
                        "description": "Create a PIXI sprite or movie clip.",
                        "short_description": "Create a PIXI sprite or movie clip.",
                        "line": 563,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "createDisplay",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.createDisplay",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.createDisplay"
                      },
                      {
                        "id": "PixiRenderer#createLine",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "from",
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " Starting point\n\n     "
                              },
                              {
                                "name": "to",
                                "types": [
                                  "Vectorish"
                                ],
                                "description": " Ending point\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.Graphics",
                                "description": " A graphic object representing a polygon.\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "from",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " Starting point\n\n     "
                          },
                          {
                            "name": "to",
                            "types": [
                              "Vectorish"
                            ],
                            "description": " Ending point\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.Graphics",
                            "description": " A graphic object representing a polygon.\n\n     "
                          }
                        ],
                        "description": "Create a line for use in PIXI stage",
                        "short_description": "Create a line for use in PIXI stage",
                        "line": 441,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "createLine",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.createLine",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.createLine"
                      },
                      {
                        "id": "PixiRenderer#createPolygon",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "verts",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array of [[Vectorish]] vertices\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.Graphics",
                                "description": " A graphic object representing a polygon.\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "verts",
                            "types": [
                              "Array"
                            ],
                            "description": " Array of [[Vectorish]] vertices\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.Graphics",
                            "description": " A graphic object representing a polygon.\n\n     "
                          }
                        ],
                        "description": "Create a polygon for use in PIXI stage",
                        "short_description": "Create a polygon for use in PIXI stage",
                        "line": 399,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "createPolygon",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.createPolygon",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.createPolygon"
                      },
                      {
                        "id": "PixiRenderer#createRect",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "types": [
                                  "Number"
                                ],
                                "description": " The x coord\n\n     "
                              },
                              {
                                "name": "y",
                                "types": [
                                  "Number"
                                ],
                                "description": " The y coord\n\n     "
                              },
                              {
                                "name": "r",
                                "types": [
                                  "Number"
                                ],
                                "description": " The rectangle width\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Number"
                                ],
                                "description": " The rectangle height\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.Graphics",
                                "description": " A graphic object representing a circle.\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "x",
                            "types": [
                              "Number"
                            ],
                            "description": " The x coord\n\n     "
                          },
                          {
                            "name": "y",
                            "types": [
                              "Number"
                            ],
                            "description": " The y coord\n\n     "
                          },
                          {
                            "name": "width",
                            "types": [
                              "Number"
                            ],
                            "description": " The rectangle width\n\n     "
                          },
                          {
                            "name": "height",
                            "types": [
                              "Number"
                            ],
                            "description": " The rectangle height\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.Graphics",
                            "description": " A graphic object representing a circle.\n\n     "
                          }
                        ],
                        "description": "Create a rectangle for use in PIXI stage",
                        "short_description": "Create a rectangle for use in PIXI stage",
                        "line": 382,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "createRect",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.createRect",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.createRect"
                      },
                      {
                        "id": "PixiRenderer#detach",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "types": [
                                  "PIXI.Graphics",
                                  "Object"
                                ],
                                "description": " Graphics object or event data (`data.body`)\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "data",
                            "types": [
                              "PIXI.Graphics",
                              "Object"
                            ],
                            "description": " Graphics object or event data (`data.body`)\n\n     "
                          }
                        ],
                        "description": "Event callback to detach a child from the stage",
                        "short_description": "Event callback to detach a child from the stage",
                        "line": 220,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "detach",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.detach",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.detach"
                      },
                      {
                        "id": "PixiRenderer#drawBody",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "body",
                                "types": [
                                  "Body"
                                ],
                                "description": " The body to draw\n\n     "
                              },
                              {
                                "name": "view",
                                "types": [
                                  "DisplayObject"
                                ],
                                "description": " The pixi display object\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "body",
                            "types": [
                              "Body"
                            ],
                            "description": " The body to draw\n\n     "
                          },
                          {
                            "name": "view",
                            "types": [
                              "DisplayObject"
                            ],
                            "description": " The pixi display object\n\n     "
                          }
                        ],
                        "description": "Draw a PIXI.DisplayObject to the stage.",
                        "short_description": "Draw a PIXI.DisplayObject to the stage.",
                        "line": 287,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "drawBody",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.drawBody",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.drawBody"
                      },
                      {
                        "id": "PixiRenderer#loadSpriteSheets",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "assetsToLoad",
                                "types": [
                                  "Array"
                                ],
                                "description": " Array of spritesheets to load\n\n     "
                              },
                              {
                                "name": "callback",
                                "types": [
                                  "Function"
                                ],
                                "description": " Function to call when loading is complete\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "this"
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "assetsToLoad",
                            "types": [
                              "Array"
                            ],
                            "description": " Array of spritesheets to load\n\n     "
                          },
                          {
                            "name": "callback",
                            "types": [
                              "Function"
                            ],
                            "description": " Function to call when loading is complete\n\n     "
                          }
                        ],
                        "description": "Loads textures defined in a spritesheet",
                        "short_description": "Loads textures defined in a spritesheet",
                        "line": 259,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "loadSpriteSheets",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.loadSpriteSheets",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.loadSpriteSheets"
                      },
                      {
                        "id": "PixiRenderer#setStyles",
                        "type": "instance method",
                        "signatures": [
                          {
                            "arguments": [
                              {
                                "name": "graphics",
                                "types": [
                                  "PIXI.Graphics"
                                ],
                                "description": " The graphics object to set styles on\n\n     "
                              },
                              {
                                "name": "styles",
                                "types": [
                                  "Object"
                                ],
                                "description": " The styles configuration\n\n     "
                              }
                            ],
                            "returns": [
                              {
                                "type": "PIXI.Graphics",
                                "description": " A graphic object\n\n     "
                              }
                            ]
                          }
                        ],
                        "arguments": [
                          {
                            "name": "graphics",
                            "types": [
                              "PIXI.Graphics"
                            ],
                            "description": " The graphics object to set styles on\n\n     "
                          },
                          {
                            "name": "styles",
                            "types": [
                              "Object"
                            ],
                            "description": " The styles configuration\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "PIXI.Graphics",
                            "description": " A graphic object\n\n     "
                          }
                        ],
                        "description": "Set styles on pixi graphics object",
                        "short_description": "Set styles on pixi graphics object",
                        "line": 322,
                        "aliases": [],
                        "children": [],
                        "file": "src/renderers/pixi-renderer.js",
                        "name": "setStyles",
                        "name_prefix": "PixiRenderer#",
                        "path": "PixiRenderer.prototype.setStyles",
                        "outFile": "pixi-renderer.html#PixiRenderer.prototype.setStyles"
                      }
                    ],
                    "file": "src/renderers/pixi-renderer.js",
                    "subclasses": [],
                    "name": "PixiRenderer",
                    "path": "PixiRenderer",
                    "outFile": "pixi-renderer.html"
                  }
                ],
                "file": "src/core/renderer.js",
                "subclasses": [
                  "CanvasRenderer",
                  "DebugRenderer",
                  "DomRenderer",
                  "PixiRenderer"
                ],
                "name": "Renderer",
                "path": "Renderer",
                "outFile": "renderer.html"
              }
            ],
            "file": "src/core/renderer.js",
            "name": "renderer",
            "name_prefix": "Physics.",
            "path": "Physics.renderer",
            "outFile": "renderer.html#Physics.renderer"
          },
          {
            "id": "Physics.scratchpad",
            "type": "class method",
            "signatures": [
              {
                "arguments": [
                  {
                    "name": "fn",
                    "optional": true,
                    "types": [
                      "Function"
                    ],
                    "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Function",
                    "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
                  },
                  {
                    "type": "Scratch",
                    "description": " The scratch session.\n\n "
                  }
                ]
              }
            ],
            "arguments": [
              {
                "name": "fn",
                "types": [
                  "Function"
                ],
                "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance.\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function",
                "description": " The wrapped function (if `fn` arg specified) that can be reused like the original minus the first (scratch) parameter.\n\n "
              },
              {
                "type": "Scratch",
                "description": " The scratch session.\n\n "
              }
            ],
            "description": "Get a new scratch session to work from or wrap a function in a scratch session.\n\nCall `.done()` on it when finished.\n\nExample:\n\n```javascript\n// get a scratch session manually\nvar myAlg = function( scratch, arg1, arg2, ... ){\n    var scratch = Physics.scratchpad()\n    ,vec = scratch.vector().set( 0, 0 ) // need to reinitialize... it's recycled!\n    ;\n    // ...\n    return scratch.done( result );\n};\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```\n\nExample:\n\n```javascript\n// wrap a function in a scratch session\nvar myAlg = Physics.scratchpad(function( scratch, arg1, arg2, ... ){\n    var vec = scratch.vector().set( 0, 0 ); // need to reinitialize... it's recycled!\n    //...\n    return result;\n});\n// later...\nwhile( awesome ){\n    myAlg( arg1, arg2, ... );\n}\n```",
            "short_description": "Get a new scratch session to work from or wrap a function in a scratch session.\n",
            "line": 128,
            "aliases": [],
            "children": [
              {
                "id": "Physics.scratchpad.fn",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Function",
                        "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "fn",
                    "types": [
                      "Function"
                    ],
                    "description": " Some function you'd like to wrap in a scratch session. First argument is the scratch instance. See [[Physics.scratchpad]].\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Function",
                    "description": " The wrapped function that can be reused like the original minus the first (scratch) parameter.\n\n "
                  }
                ],
                "description": "Wrap a function in a scratch session.\n\nSame as calling `Physics.scratchpad( fn )` with a function specified.",
                "short_description": "Wrap a function in a scratch session.\n",
                "line": 152,
                "aliases": [],
                "children": [],
                "file": "src/util/scratchpad.js",
                "name": "fn",
                "name_prefix": "Physics.scratchpad.",
                "path": "Physics.scratchpad.fn",
                "outFile": "scratchpad.html#Physics.scratchpad.fn"
              },
              {
                "id": "Physics.scratchpad.register",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "name",
                        "types": [
                          "String"
                        ],
                        "description": " Name of the object class\n\n "
                      },
                      {
                        "name": "constructor",
                        "types": [
                          "Function"
                        ],
                        "description": " The object constructor\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "name",
                    "types": [
                      "String"
                    ],
                    "description": " Name of the object class\n\n "
                  },
                  {
                    "name": "constructor",
                    "types": [
                      "Function"
                    ],
                    "description": " The object constructor\n\n "
                  }
                ],
                "description": "Register a new object to be included in scratchpads.\n\nExample:\n\n```javascript\n// register a hypothetical vector class...\nPhysics.scratchpad.register('vector', Vector);\n```",
                "short_description": "Register a new object to be included in scratchpads.\n",
                "line": 186,
                "aliases": [],
                "children": [],
                "file": "src/util/scratchpad.js",
                "name": "register",
                "name_prefix": "Physics.scratchpad.",
                "path": "Physics.scratchpad.register",
                "outFile": "scratchpad.html#Physics.scratchpad.register"
              },
              {
                "id": "Scratch",
                "type": "class",
                "belongs_to": "Physics.scratchpad",
                "description": "A scratchpad session.\n\nThis class keeps track of temporary objects used\nin this session and releases them when finished (call to `.done()`).\n\nUse this to retrieve temporary objects:\n- `.vector()`: retrieve a temporary [[Physics.vector]]\n- `.transform()`: retrieve a temporary [[Physics.transform]]\n\nSee [[Physics.scratchpad]] for more info.",
                "short_description": "A scratchpad session.\n",
                "line": 37,
                "aliases": [],
                "children": [
                  {
                    "id": "Scratch#done",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "val",
                            "optional": true,
                            "types": [
                              "Mixed"
                            ],
                            "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Mixed",
                            "description": " Whatever you specified as `val`\n\n     "
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "val",
                        "types": [
                          "Mixed"
                        ],
                        "description": " No effect on this method, just passed on to the return value so you can do things like:\n\n     return scratch.done( myReturnVal );\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Mixed",
                        "description": " Whatever you specified as `val`\n\n     "
                      }
                    ],
                    "description": "Declare that your work is finished.\n\nRelease temp objects for use elsewhere. Must be called when immediate work is done.\n\nYou can wrap the return value in scratch.done() so that you don't forget to call it.\n\nExample:\n\n```javascript\nreturn scratch.done( myReturnValue );\n```",
                    "short_description": "Declare that your work is finished.\n",
                    "line": 68,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/scratchpad.js",
                    "name": "done",
                    "name_prefix": "Scratch#",
                    "path": "Scratch.prototype.done",
                    "outFile": "scratchpad.html#Scratch.prototype.done"
                  }
                ],
                "file": "src/util/scratchpad.js",
                "subclasses": [],
                "name": "Scratch",
                "path": "Scratch",
                "outFile": "scratchpad.html"
              }
            ],
            "file": "src/util/scratchpad.js",
            "name": "scratchpad",
            "name_prefix": "Physics.",
            "path": "Physics.scratchpad",
            "outFile": "scratchpad.html#Physics.scratchpad"
          },
          {
            "id": "Physics.transform",
            "type": "class",
            "description": "Vector Transformations class for rotating and translating vectors",
            "short_description": "Vector Transformations class for rotating and translating vectors",
            "line": 8,
            "aliases": [],
            "children": [
              {
                "id": "Physics.transform#clone",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "transform",
                        "optional": true,
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " Transform to copy\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this",
                        "description": " For chaining\n\n "
                      },
                      {
                        "type": "Physics.transform",
                        "description": " New copy of `this` if none is specified as an argument\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "transform",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " Transform to copy\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "this",
                    "description": " For chaining\n\n "
                  },
                  {
                    "type": "Physics.transform",
                    "description": " New copy of `this` if none is specified as an argument\n\n "
                  }
                ],
                "description": "Clone another transform. Or clone self into new transform.",
                "short_description": "Clone another transform. Or clone self into new transform.",
                "line": 82,
                "aliases": [],
                "children": [],
                "file": "src/math/transform.js",
                "name": "clone",
                "name_prefix": "Physics.transform#",
                "path": "Physics.transform.prototype.clone",
                "outFile": "transform.html#Physics.transform.prototype.clone"
              },
              {
                "id": "Physics.transform#setRotation",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "angle",
                        "types": [
                          "Number"
                        ],
                        "description": " Angle (radians) to use for rotation\n\n "
                      },
                      {
                        "name": "origin",
                        "optional": true,
                        "types": [
                          "Vectorish"
                        ],
                        "description": " Origin of the rotation\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "angle",
                    "types": [
                      "Number"
                    ],
                    "description": " Angle (radians) to use for rotation\n\n "
                  },
                  {
                    "name": "origin",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " Origin of the rotation\n\n "
                  }
                ],
                "description": "Set the rotation portion of the transform",
                "short_description": "Set the rotation portion of the transform",
                "line": 60,
                "aliases": [],
                "children": [],
                "file": "src/math/transform.js",
                "name": "setRotation",
                "name_prefix": "Physics.transform#",
                "path": "Physics.transform.prototype.setRotation",
                "outFile": "transform.html#Physics.transform.prototype.setRotation"
              },
              {
                "id": "Physics.transform#setTranslation",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "vect",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The translation vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "vect",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The translation vector\n\n "
                  }
                ],
                "description": "Set the translation portion of the transform.",
                "short_description": "Set the translation portion of the transform.",
                "line": 47,
                "aliases": [],
                "children": [],
                "file": "src/math/transform.js",
                "name": "setTranslation",
                "name_prefix": "Physics.transform#",
                "path": "Physics.transform.prototype.setTranslation",
                "outFile": "transform.html#Physics.transform.prototype.setTranslation"
              },
              {
                "id": "new Physics.transform",
                "type": "constructor",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "vect",
                        "optional": true,
                        "types": [
                          "Vectorish"
                        ],
                        "description": " Translation vector\n\n "
                      },
                      {
                        "name": "angle",
                        "optional": true,
                        "types": [
                          "Number"
                        ],
                        "description": " Angle (radians) to use for rotation\n\n "
                      },
                      {
                        "name": "origin",
                        "optional": true,
                        "types": [
                          "Vectorish"
                        ],
                        "description": " Origin of the rotation\n\n "
                      }
                    ]
                  },
                  {
                    "arguments": [
                      {
                        "name": "transform",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " Transform to copy\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "vect",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " Translation vector\n\n "
                  },
                  {
                    "name": "transform",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " Transform to copy\n\n "
                  },
                  {
                    "name": "angle",
                    "types": [
                      "Number"
                    ],
                    "description": " Angle (radians) to use for rotation\n\n "
                  },
                  {
                    "name": "origin",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " Origin of the rotation\n\n "
                  }
                ],
                "description": "Transform Constructor / Factory",
                "short_description": "Transform Constructor / Factory",
                "line": 19,
                "aliases": [],
                "children": [],
                "file": "src/math/transform.js",
                "name": "new",
                "name_prefix": "Physics.transform.",
                "path": "Physics.transform.new",
                "outFile": "transform.html#Physics.transform.new"
              }
            ],
            "file": "src/math/transform.js",
            "subclasses": [],
            "name": "transform",
            "name_prefix": "Physics.",
            "path": "Physics.transform",
            "outFile": "transform.html"
          },
          {
            "id": "Physics.util",
            "type": "namespace",
            "description": "Namespace for utility functions.",
            "short_description": "Namespace for utility functions.",
            "line": 47,
            "aliases": [],
            "children": [
              {
                "id": "Physics.util.bind",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " The function to bind scope to\n\n "
                      },
                      {
                        "name": "scope",
                        "types": [
                          "Object"
                        ],
                        "description": " The scope to give to `fn`\n\n "
                      },
                      {
                        "name": "args",
                        "ellipsis": true,
                        "optional": true,
                        "types": [
                          "Mixed"
                        ],
                        "description": " Arguments to send to `fn`\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Function"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "fn",
                    "types": [
                      "Function"
                    ],
                    "description": " The function to bind scope to\n\n "
                  },
                  {
                    "name": "scope",
                    "types": [
                      "Object"
                    ],
                    "description": " The scope to give to `fn`\n\n "
                  },
                  {
                    "name": "args",
                    "types": [
                      "Mixed"
                    ],
                    "description": " Arguments to send to `fn`\n\n "
                  }
                ],
                "description": "Bind a scope to a function.\n\nBasically the same functionality as [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).",
                "short_description": "Bind a scope to a function.\n",
                "line": 183,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "bind",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.bind",
                "outFile": "helpers.html#Physics.util.bind"
              },
              {
                "id": "Physics.util.clearArray",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "arr",
                        "types": [
                          "Array"
                        ],
                        "description": " The array to clear\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array",
                        "description": " The array passed in\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "arr",
                    "types": [
                      "Array"
                    ],
                    "description": " The array to clear\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Array",
                    "description": " The array passed in\n\n "
                  }
                ],
                "description": "Quickly clear an array.",
                "short_description": "Quickly clear an array.",
                "line": 33,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "clearArray",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.clearArray",
                "outFile": "helpers.html#Physics.util.clearArray"
              },
              {
                "id": "Physics.util.decorator",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "type",
                        "types": [
                          "String"
                        ],
                        "description": " The name of the factory you are creating\n\n "
                      },
                      {
                        "name": "protoDef",
                        "optional": true,
                        "types": [
                          "Object"
                        ],
                        "description": " The top-level prototype\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Function",
                        "description": " The factory function\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "type",
                    "types": [
                      "String"
                    ],
                    "description": " The name of the factory you are creating\n\n "
                  },
                  {
                    "name": "protoDef",
                    "types": [
                      "Object"
                    ],
                    "description": " The top-level prototype\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Function",
                    "description": " The factory function\n\n "
                  }
                ],
                "related_to": "factory",
                "description": "Facilitates creation of decorator factory functions.\n\nSee the [[factory]] definition for the factory signatures.\n[For full documentation and examples, please visit the wiki](https://github.com/wellcaffeinated/PhysicsJS/wiki/Fundamentals#the-factory-pattern).\n\nExample:\n\n```javascript\nvar factory = Physics.util.decorator('factory', {\n     // prototype methods...\n     method: function( args ){\n     }\n});\n\n// define\nfactory( 'name', 'parent-name', function( parent ){\n\n     // extend further...\n     return {\n         // overrides\n         init: function( cfg ){\n             parent.init.call(this, cfg);\n         }\n     };\n});\n\n// instantiate\nvar options = { key: 'val' };\nvar instance = factory( 'name', options );\n```",
                "short_description": "Facilitates creation of decorator factory functions.\n",
                "line": 38,
                "aliases": [],
                "children": [
                  {
                    "id": "factory",
                    "type": "method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "name",
                            "types": [
                              "String"
                            ],
                            "description": "  The class name\n\n "
                          },
                          {
                            "name": "parentName",
                            "optional": true,
                            "types": [
                              "String"
                            ],
                            "description": " The name of parent class to extend\n\n "
                          },
                          {
                            "name": "decorator",
                            "types": [
                              "Function"
                            ],
                            "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                          },
                          {
                            "name": "cfg",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration to pass to the class initializer\n\n "
                          }
                        ]
                      },
                      {
                        "arguments": [
                          {
                            "name": "name",
                            "types": [
                              "String"
                            ],
                            "description": "  The class name\n\n "
                          },
                          {
                            "name": "cfg",
                            "types": [
                              "Object"
                            ],
                            "description": " The configuration to pass to the class initializer\n\n "
                          }
                        ],
                        "returns": [
                          {
                            "type": "Object"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "name",
                        "types": [
                          "String"
                        ],
                        "description": "  The class name\n\n "
                      },
                      {
                        "name": "parentName",
                        "types": [
                          "String"
                        ],
                        "description": " The name of parent class to extend\n\n "
                      },
                      {
                        "name": "decorator",
                        "types": [
                          "Function"
                        ],
                        "description": " The decorator function that should define and return methods to extend (decorate) the base class\n\n "
                      },
                      {
                        "name": "cfg",
                        "types": [
                          "Object"
                        ],
                        "description": " The configuration to pass to the class initializer\n\n "
                      }
                    ],
                    "belongs_to": "Physics.util.decorator",
                    "description": "Factory function for definition and instantiation of subclasses.\n\nUse the first signature (once) to define it first.\nIf defining without the \"cfg\" parameter, void will be returned. Otherwise the class instance will be returned.\n\nSee [[Physics.util.decorator]] for more information.",
                    "short_description": "Factory function for definition and instantiation of subclasses.\n",
                    "line": 129,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/decorator.js",
                    "name": "factory",
                    "path": "factory",
                    "outFile": "decorator.html#factory"
                  }
                ],
                "file": "src/util/decorator.js",
                "name": "decorator",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.decorator",
                "outFile": "decorator.html#Physics.util.decorator"
              },
              {
                "id": "Physics.util.defaults",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "object",
                        "types": [
                          "Object"
                        ],
                        "description": " The destination object\n\n "
                      },
                      {
                        "name": "source",
                        "ellipsis": true,
                        "types": [
                          "Object"
                        ],
                        "description": " The source objects\n\n "
                      },
                      {
                        "name": "callback",
                        "optional": true,
                        "types": [
                          "Function"
                        ],
                        "description": " The function to customize assigning values\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "object",
                    "types": [
                      "Object"
                    ],
                    "description": " The destination object\n\n "
                  },
                  {
                    "name": "source",
                    "types": [
                      "Object"
                    ],
                    "description": " The source objects\n\n "
                  },
                  {
                    "name": "callback",
                    "types": [
                      "Function"
                    ],
                    "description": " The function to customize assigning values\n\n "
                  }
                ],
                "description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
                "short_description": "Implementation of [lodash.defaults](http://lodash.com/docs#defaults).",
                "line": 650,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "defaults",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.defaults",
                "outFile": "helpers.html#Physics.util.defaults"
              },
              {
                "id": "Physics.util.extend",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "object",
                        "types": [
                          "Object"
                        ],
                        "description": " The destination object\n\n "
                      },
                      {
                        "name": "source",
                        "ellipsis": true,
                        "types": [
                          "Object"
                        ],
                        "description": " The source objects\n\n "
                      },
                      {
                        "name": "callback",
                        "optional": true,
                        "types": [
                          "Function"
                        ],
                        "description": " The function to customize assigning values\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "object",
                    "types": [
                      "Object"
                    ],
                    "description": " The destination object\n\n "
                  },
                  {
                    "name": "source",
                    "types": [
                      "Object"
                    ],
                    "description": " The source objects\n\n "
                  },
                  {
                    "name": "callback",
                    "types": [
                      "Function"
                    ],
                    "description": " The function to customize assigning values\n\n "
                  }
                ],
                "description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
                "short_description": "Implementation of [lodash.extend](http://lodash.com/docs#assign)",
                "line": 640,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "extend",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.extend",
                "outFile": "helpers.html#Physics.util.extend"
              },
              {
                "id": "Physics.util.filter",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "collection",
                        "types": [
                          "Array"
                        ],
                        "description": " Collection of values to test\n\n "
                      },
                      {
                        "name": "fn",
                        "arguments": [
                          {
                            "name": "value",
                            "description": " The value to test\n\n ",
                            "types": [
                              "Mixed"
                            ]
                          },
                          {
                            "name": "index",
                            "description": " The index of value in collection\n\n ",
                            "types": [
                              "Number"
                            ]
                          },
                          {
                            "name": "collection",
                            "description": " Collection of values to test\n\n ",
                            "types": [
                              "Array"
                            ]
                          }
                        ],
                        "callback": true,
                        "types": [
                          "Function"
                        ],
                        "description": " The test function\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "collection",
                    "types": [
                      "Array"
                    ],
                    "description": " Collection of values to test\n\n "
                  },
                  {
                    "name": "fn",
                    "types": [
                      "Function"
                    ],
                    "description": " The test function\n\n "
                  },
                  {
                    "name": "value",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  },
                  {
                    "name": "index",
                    "types": [
                      "Number"
                    ],
                    "description": " The index of value in collection\n\n "
                  },
                  {
                    "name": "collection",
                    "types": [
                      "Array"
                    ],
                    "description": " The input collection\n\n "
                  }
                ],
                "description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
                "short_description": "Test an array of values against a test function\nand return another array of values for which\nthe test function returns true.",
                "line": 235,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "filter",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.filter",
                "outFile": "helpers.html#Physics.util.filter"
              },
              {
                "id": "Physics.util.find",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "collection",
                        "types": [
                          "Array"
                        ],
                        "description": " Collection of values to test\n\n "
                      },
                      {
                        "name": "fn",
                        "arguments": [
                          {
                            "name": "value",
                            "description": " The value to test\n\n ",
                            "types": [
                              "Mixed"
                            ]
                          },
                          {
                            "name": "index",
                            "description": " The index of value in collection\n\n ",
                            "types": [
                              "Number"
                            ]
                          },
                          {
                            "name": "collection",
                            "description": " Collection of values to test\n\n ",
                            "types": [
                              "Array"
                            ]
                          }
                        ],
                        "callback": true,
                        "types": [
                          "Function"
                        ],
                        "description": " The test function\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Mixed"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "collection",
                    "types": [
                      "Array"
                    ],
                    "description": " Collection of values to test\n\n "
                  },
                  {
                    "name": "fn",
                    "types": [
                      "Function"
                    ],
                    "description": " The test function\n\n "
                  },
                  {
                    "name": "value",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  },
                  {
                    "name": "index",
                    "types": [
                      "Number"
                    ],
                    "description": " The index of value in collection\n\n "
                  },
                  {
                    "name": "collection",
                    "types": [
                      "Array"
                    ],
                    "description": " The input collection\n\n "
                  }
                ],
                "description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
                "short_description": "Test an array of values against a test function\nand return the first value for which the function\nreturns true.",
                "line": 209,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "find",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.find",
                "outFile": "helpers.html#Physics.util.find"
              },
              {
                "id": "Physics.util.indexOf",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "arr",
                        "types": [
                          "Array"
                        ],
                        "description": " The array to search\n\n "
                      },
                      {
                        "name": "value",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to find\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " The index of `value` in the array OR `-1` if not found\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "arr",
                    "types": [
                      "Array"
                    ],
                    "description": " The array to search\n\n "
                  },
                  {
                    "name": "value",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to find\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " The index of `value` in the array OR `-1` if not found\n\n "
                  }
                ],
                "description": "Fast indexOf implementation.",
                "short_description": "Fast indexOf implementation.",
                "line": 9,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "indexOf",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.indexOf",
                "outFile": "helpers.html#Physics.util.indexOf"
              },
              {
                "id": "Physics.util.isArray",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "val",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to test\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "val",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  }
                ],
                "description": "Test if a value is an array.",
                "short_description": "Test if a value is an array.",
                "line": 502,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "isArray",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.isArray",
                "outFile": "helpers.html#Physics.util.isArray"
              },
              {
                "id": "Physics.util.isFunction",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "val",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to test\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "val",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  }
                ],
                "description": "Test if a value is a function.",
                "short_description": "Test if a value is a function.",
                "line": 494,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "isFunction",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.isFunction",
                "outFile": "helpers.html#Physics.util.isFunction"
              },
              {
                "id": "Physics.util.isObject",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "val",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to test\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "val",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  }
                ],
                "description": "Test if a value is an object.",
                "short_description": "Test if a value is an object.",
                "line": 476,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "isObject",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.isObject",
                "outFile": "helpers.html#Physics.util.isObject"
              },
              {
                "id": "Physics.util.isPlainObject",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "val",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to test\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "val",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to test\n\n "
                  }
                ],
                "description": "Test if a value is a plain javascript object.",
                "short_description": "Test if a value is a plain javascript object.",
                "line": 540,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "isPlainObject",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.isPlainObject",
                "outFile": "helpers.html#Physics.util.isPlainObject"
              },
              {
                "id": "Physics.util.options",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "def",
                        "types": [
                          "Object"
                        ],
                        "description": " Default options to set\n\n "
                      },
                      {
                        "name": "target",
                        "optional": true,
                        "types": [
                          "Object"
                        ],
                        "description": " Where to copy the options to. Defaults to the returned function.\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Function",
                        "description": " The options function\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "def",
                    "types": [
                      "Object"
                    ],
                    "description": " Default options to set\n\n "
                  },
                  {
                    "name": "target",
                    "types": [
                      "Object"
                    ],
                    "description": " Where to copy the options to. Defaults to the returned function.\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Function",
                    "description": " The options function\n\n "
                  }
                ],
                "description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n\nExample:\n\n```javascript\nthis.options = Physics.util.options({ foo: 'bar', opt: 'def' });\nthis.options({ opt: 'myVal' });\n\nthis.options.foo; // === 'bar'\nthis.options.def; // === 'myVal'\n\n// can also change defaults later\nthis.options.defaults({ foo: 'baz' });\n\n// can add a change callback\nthis.options.onChange(function( opts ){\n    // some option changed\n    // opts is the target\n});\n```",
                "short_description": "Options helper to keep track of options. Call it with a config object. Access options directly on the function.\n",
                "line": 102,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "options",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.options",
                "outFile": "helpers.html#Physics.util.options"
              },
              {
                "id": "Physics.util.pairHash",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "id1",
                        "types": [
                          "Number"
                        ],
                        "description": " The id of the first thing\n\n "
                      },
                      {
                        "name": "id2",
                        "types": [
                          "Number"
                        ],
                        "description": " The id of the second thing\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " A unique numeric hash (valid for values < 2^16)\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "id1",
                    "types": [
                      "Number"
                    ],
                    "description": " The id of the first thing\n\n "
                  },
                  {
                    "name": "id2",
                    "types": [
                      "Number"
                    ],
                    "description": " The id of the second thing\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " A unique numeric hash (valid for values < 2^16)\n\n "
                  }
                ],
                "description": "Generate a unique numeric hash from two input IDs.\n\nUseful for speedy indexing of pairs.",
                "short_description": "Generate a unique numeric hash from two input IDs.\n",
                "line": 157,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "pairHash",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.pairHash",
                "outFile": "helpers.html#Physics.util.pairHash"
              },
              {
                "id": "Physics.util.pubsub",
                "type": "class",
                "description": "Fast pubsub implementation.\n\nCan be mixed into other classes easily.",
                "short_description": "Fast pubsub implementation.\n",
                "line": 19,
                "aliases": [],
                "children": [
                  {
                    "id": "Physics.util.pubsub#emit",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "topic",
                            "types": [
                              "String"
                            ],
                            "description": " The topic name\n\n     "
                          },
                          {
                            "name": "data",
                            "optional": true,
                            "types": [
                              "Mixed"
                            ],
                            "description": " The data to send\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "topic",
                        "types": [
                          "String"
                        ],
                        "description": " The topic name\n\n     "
                      },
                      {
                        "name": "data",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The data to send\n\n     "
                      }
                    ],
                    "description": "Publish data to a topic.",
                    "short_description": "Publish data to a topic.",
                    "line": 160,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/pubsub.js",
                    "name": "emit",
                    "name_prefix": "Physics.util.pubsub#",
                    "path": "Physics.util.pubsub.prototype.emit",
                    "outFile": "pubsub.html#Physics.util.pubsub.prototype.emit"
                  },
                  {
                    "id": "Physics.util.pubsub#off",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "topic",
                            "types": [
                              "String"
                            ],
                            "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                          },
                          {
                            "name": "fn",
                            "types": [
                              "Function"
                            ],
                            "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                          },
                          {
                            "name": "scope",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      },
                      {
                        "arguments": [
                          {
                            "name": "topicCfg",
                            "types": [
                              "Object"
                            ],
                            "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "topic",
                        "types": [
                          "String"
                        ],
                        "description": " topic The topic name. Specify `true` to remove all listeners for all topics\n\n     "
                      },
                      {
                        "name": "topicCfg",
                        "types": [
                          "Object"
                        ],
                        "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                      },
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " The original callback function. Specify `true` to remove all listeners for specified topic\n\n     "
                      },
                      {
                        "name": "scope",
                        "types": [
                          "Object"
                        ],
                        "description": " The scope the callback was bound to. This is important if you are binding methods that come from object prototypes.\n\n     "
                      }
                    ],
                    "description": "Unsubscribe callback(s) from topic(s).",
                    "short_description": "Unsubscribe callback(s) from topic(s).",
                    "line": 96,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/pubsub.js",
                    "name": "off",
                    "name_prefix": "Physics.util.pubsub#",
                    "path": "Physics.util.pubsub.prototype.off",
                    "outFile": "pubsub.html#Physics.util.pubsub.prototype.off"
                  },
                  {
                    "id": "Physics.util.pubsub#on",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "topic",
                            "types": [
                              "String"
                            ],
                            "description": " The topic name\n\n     "
                          },
                          {
                            "name": "fn",
                            "arguments": [
                              {
                                "name": "data"
                              },
                              {
                                "name": "event"
                              }
                            ],
                            "callback": true,
                            "types": [
                              "Function"
                            ],
                            "description": " The callback function (if not using Object as previous argument)\n\n     "
                          },
                          {
                            "name": "scope",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The scope to bind callback to\n\n     "
                          },
                          {
                            "name": "priority",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The priority of the callback (higher is earlier)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      },
                      {
                        "arguments": [
                          {
                            "name": "topicConfig",
                            "types": [
                              "Object"
                            ],
                            "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                          },
                          {
                            "name": "scope",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The scope to bind callback to\n\n     "
                          },
                          {
                            "name": "priority",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The priority of the callback (higher is earlier)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "topic",
                        "types": [
                          "String"
                        ],
                        "description": " The topic name\n\n     "
                      },
                      {
                        "name": "topicConfig",
                        "types": [
                          "Object"
                        ],
                        "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                      },
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " The callback function (if not using Object as previous argument)\n\n     "
                      },
                      {
                        "name": "data",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The data sent from the call to `.emit()`\n\n     "
                      },
                      {
                        "name": "event",
                        "types": [
                          "Object"
                        ],
                        "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                      },
                      {
                        "name": "scope",
                        "types": [
                          "Object"
                        ],
                        "description": " The scope to bind callback to\n\n     "
                      },
                      {
                        "name": "priority",
                        "types": [
                          "Number"
                        ],
                        "description": " The priority of the callback (higher is earlier)\n\n     "
                      }
                    ],
                    "description": "Subscribe callback(s) to a topic(s).",
                    "short_description": "Subscribe callback(s) to a topic(s).",
                    "line": 41,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/pubsub.js",
                    "name": "on",
                    "name_prefix": "Physics.util.pubsub#",
                    "path": "Physics.util.pubsub.prototype.on",
                    "outFile": "pubsub.html#Physics.util.pubsub.prototype.on"
                  },
                  {
                    "id": "Physics.util.pubsub#one",
                    "type": "instance method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "topic",
                            "types": [
                              "String"
                            ],
                            "description": " The topic name\n\n     "
                          },
                          {
                            "name": "fn",
                            "arguments": [
                              {
                                "name": "data"
                              },
                              {
                                "name": "event"
                              }
                            ],
                            "callback": true,
                            "types": [
                              "Function"
                            ],
                            "description": " The callback function (if not using Object as previous argument)\n\n     "
                          },
                          {
                            "name": "scope",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The scope to bind callback to\n\n     "
                          },
                          {
                            "name": "priority",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The priority of the callback (higher is earlier)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      },
                      {
                        "arguments": [
                          {
                            "name": "topicConfig",
                            "types": [
                              "Object"
                            ],
                            "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                          },
                          {
                            "name": "scope",
                            "optional": true,
                            "types": [
                              "Object"
                            ],
                            "description": " The scope to bind callback to\n\n     "
                          },
                          {
                            "name": "priority",
                            "optional": true,
                            "types": [
                              "Number"
                            ],
                            "description": " The priority of the callback (higher is earlier)\n\n     "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "topic",
                        "types": [
                          "String"
                        ],
                        "description": " The topic name\n\n     "
                      },
                      {
                        "name": "topicConfig",
                        "types": [
                          "Object"
                        ],
                        "description": " A config with key/value pairs of `{ topic: callbackFn, ... }`\n\n     "
                      },
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " The callback function (if not using Object as previous argument)\n\n     "
                      },
                      {
                        "name": "data",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The data sent from the call to `.emit()`\n\n     "
                      },
                      {
                        "name": "event",
                        "types": [
                          "Object"
                        ],
                        "description": " Event data, holding `.topic`, the topic, and `.handler`, the `fn` callback.\n\n     "
                      },
                      {
                        "name": "scope",
                        "types": [
                          "Object"
                        ],
                        "description": " The scope to bind callback to\n\n     "
                      },
                      {
                        "name": "priority",
                        "types": [
                          "Number"
                        ],
                        "description": " The priority of the callback (higher is earlier)\n\n     "
                      }
                    ],
                    "description": "Subscribe callback(s) to a topic(s), but only ONCE.",
                    "short_description": "Subscribe callback(s) to a topic(s), but only ONCE.",
                    "line": 211,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/pubsub.js",
                    "name": "one",
                    "name_prefix": "Physics.util.pubsub#",
                    "path": "Physics.util.pubsub.prototype.one",
                    "outFile": "pubsub.html#Physics.util.pubsub.prototype.one"
                  }
                ],
                "file": "src/util/pubsub.js",
                "subclasses": [],
                "name": "pubsub",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.pubsub",
                "outFile": "pubsub.html"
              },
              {
                "id": "Physics.util.sortedIndex",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "array",
                        "types": [
                          "Array"
                        ],
                        "description": " The array to inspect\n\n "
                      },
                      {
                        "name": "value",
                        "types": [
                          "Mixed"
                        ],
                        "description": " The value to evaluate\n\n "
                      },
                      {
                        "name": "callback",
                        "optional": true,
                        "types": [
                          "Function"
                        ],
                        "description": " Function called per iteration\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "array",
                    "types": [
                      "Array"
                    ],
                    "description": " The array to inspect\n\n "
                  },
                  {
                    "name": "value",
                    "types": [
                      "Mixed"
                    ],
                    "description": " The value to evaluate\n\n "
                  },
                  {
                    "name": "callback",
                    "types": [
                      "Function"
                    ],
                    "description": " Function called per iteration\n\n "
                  }
                ],
                "description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
                "short_description": "Implementation of [lodash.sortedIndex](http://lodash.com/docs#sortedIndex).",
                "line": 682,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "sortedIndex",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.sortedIndex",
                "outFile": "helpers.html#Physics.util.sortedIndex"
              },
              {
                "id": "Physics.util.throttle",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "fn",
                        "types": [
                          "Function"
                        ],
                        "description": " The function to throttle\n\n "
                      },
                      {
                        "name": "delay",
                        "types": [
                          "Number"
                        ],
                        "description": " Time in milliseconds\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Function"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "fn",
                    "types": [
                      "Function"
                    ],
                    "description": " The function to throttle\n\n "
                  },
                  {
                    "name": "delay",
                    "types": [
                      "Number"
                    ],
                    "description": " Time in milliseconds\n\n "
                  }
                ],
                "description": "Ensure a function is only called once every specified time span.",
                "short_description": "Ensure a function is only called once every specified time span.",
                "line": 48,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "throttle",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.throttle",
                "outFile": "helpers.html#Physics.util.throttle"
              },
              {
                "id": "Physics.util.ticker",
                "type": "class",
                "description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n\nRequires window.requestAnimationFrame... so polyfill it if you need to.",
                "short_description": "The Ticker _singleton_ for easily binding callbacks to animation loops (requestAnimationFrame).\n",
                "line": 8,
                "aliases": [],
                "children": [
                  {
                    "id": "Physics.util.ticker.isActive",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "Boolean"
                          }
                        ]
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if running, `false` otherwise.\n\n "
                      }
                    ],
                    "description": "Determine if ticker is currently running.",
                    "short_description": "Determine if ticker is currently running.",
                    "line": 107,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/ticker.js",
                    "name": "isActive",
                    "name_prefix": "Physics.util.ticker.",
                    "path": "Physics.util.ticker.isActive",
                    "outFile": "ticker.html#Physics.util.ticker.isActive"
                  },
                  {
                    "id": "Physics.util.ticker.off",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "listener",
                            "types": [
                              "Function"
                            ],
                            "description": " The callback function previously bound\n\n "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "listener",
                        "types": [
                          "Function"
                        ],
                        "description": " The callback function previously bound\n\n "
                      }
                    ],
                    "description": "Unsubscribe a callback from the ticker.",
                    "short_description": "Unsubscribe a callback from the ticker.",
                    "line": 95,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/ticker.js",
                    "name": "off",
                    "name_prefix": "Physics.util.ticker.",
                    "path": "Physics.util.ticker.off",
                    "outFile": "ticker.html#Physics.util.ticker.off"
                  },
                  {
                    "id": "Physics.util.ticker.on",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [
                          {
                            "name": "listener",
                            "arguments": [
                              {
                                "name": "time",
                                "description": " The current timestamp\n\n ",
                                "types": [
                                  "Number"
                                ]
                              }
                            ],
                            "callback": true,
                            "types": [
                              "Function"
                            ],
                            "description": " The callback function\n\n "
                          }
                        ],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "arguments": [
                      {
                        "name": "listener",
                        "types": [
                          "Function"
                        ],
                        "description": " The callback function\n\n "
                      },
                      {
                        "name": "time",
                        "types": [
                          "Number"
                        ],
                        "description": " The current timestamp\n\n "
                      }
                    ],
                    "description": "Subscribe a callback to the ticker.",
                    "short_description": "Subscribe a callback to the ticker.",
                    "line": 83,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/ticker.js",
                    "name": "on",
                    "name_prefix": "Physics.util.ticker.",
                    "path": "Physics.util.ticker.on",
                    "outFile": "ticker.html#Physics.util.ticker.on"
                  },
                  {
                    "id": "Physics.util.ticker.start",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "description": "Start the ticker",
                    "short_description": "Start the ticker",
                    "line": 59,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/ticker.js",
                    "name": "start",
                    "name_prefix": "Physics.util.ticker.",
                    "path": "Physics.util.ticker.start",
                    "outFile": "ticker.html#Physics.util.ticker.start"
                  },
                  {
                    "id": "Physics.util.ticker.stop",
                    "type": "class method",
                    "signatures": [
                      {
                        "arguments": [],
                        "returns": [
                          {
                            "type": "this"
                          }
                        ]
                      }
                    ],
                    "description": "Stop the ticker",
                    "short_description": "Stop the ticker",
                    "line": 70,
                    "aliases": [],
                    "children": [],
                    "file": "src/util/ticker.js",
                    "name": "stop",
                    "name_prefix": "Physics.util.ticker.",
                    "path": "Physics.util.ticker.stop",
                    "outFile": "ticker.html#Physics.util.ticker.stop"
                  }
                ],
                "file": "src/util/ticker.js",
                "subclasses": [],
                "name": "ticker",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.ticker",
                "outFile": "ticker.html"
              },
              {
                "id": "Physics.util.uniq",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "array",
                        "types": [
                          "Array"
                        ],
                        "description": " The array\n\n "
                      },
                      {
                        "name": "isSorted",
                        "optional": true,
                        "types": [
                          "Boolean"
                        ],
                        "description": " Flag to indicate the array is sorted\n\n "
                      },
                      {
                        "name": "callback",
                        "optional": true,
                        "types": [
                          "Function"
                        ],
                        "description": " Mapping function\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "array",
                    "types": [
                      "Array"
                    ],
                    "description": " The array\n\n "
                  },
                  {
                    "name": "isSorted",
                    "types": [
                      "Boolean"
                    ],
                    "description": " Flag to indicate the array is sorted\n\n "
                  },
                  {
                    "name": "callback",
                    "types": [
                      "Function"
                    ],
                    "description": " Mapping function\n\n "
                  }
                ],
                "description": "Create an array without duplicates.",
                "short_description": "Create an array without duplicates.",
                "line": 597,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "uniq",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.uniq",
                "outFile": "helpers.html#Physics.util.uniq"
              },
              {
                "id": "Physics.util.uniqueId",
                "type": "class method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "prefix",
                        "optional": true,
                        "types": [
                          "String"
                        ],
                        "description": " Prefix to the id\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "String"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "prefix",
                    "types": [
                      "String"
                    ],
                    "description": " Prefix to the id\n\n "
                  }
                ],
                "description": "Generate a unique id, optionally prefixed.",
                "short_description": "Generate a unique id, optionally prefixed.",
                "line": 419,
                "aliases": [],
                "children": [],
                "file": "src/util/helpers.js",
                "name": "uniqueId",
                "name_prefix": "Physics.util.",
                "path": "Physics.util.uniqueId",
                "outFile": "helpers.html#Physics.util.uniqueId"
              }
            ],
            "file": "src/intro.js",
            "name": "util",
            "name_prefix": "Physics.",
            "path": "Physics.util",
            "outFile": "intro.html#Physics.util"
          },
          {
            "id": "Physics.vector",
            "type": "class",
            "description": "The vector class and factory function.\n\nCall `Physics.vector` with the same arguments as\n[[new Physics.vector]] to create an instance.\n\nThe vector methods mostly modify the vector instance.\nThis makes computations faster because creating vectors\nis avoided.\n\nCreating vectors is generally an expensive operation\nso try to avoid doing this in the simulation loop.\nInstead you can use [[Physics.scratchpad]] to get\ntemporary vectors for use in performance critical\ncode.\n\n_Note_: The coordinate system is left-handed, meaning that\nthe clockwise angular direction is positive. This has implications\nfor the cross-product rule.",
            "short_description": "The vector class and factory function.\n",
            "line": 38,
            "aliases": [],
            "children": [
              {
                "id": "Physics.vector#_",
                "type": "namespace",
                "internal": true,
                "description": "Private storage array for data.\n\nDo not access this directly. Private. Keep out.",
                "short_description": "Private storage array for data.\n",
                "line": 80,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "_",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype._",
                "outFile": "vector.html#Physics.vector.prototype._"
              },
              {
                "id": "Physics.vector#add",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "x",
                        "types": [
                          "Number"
                        ],
                        "description": " amount to add to the x coordinate\n\n "
                      },
                      {
                        "name": "y",
                        "types": [
                          "Number"
                        ],
                        "description": " amount to add to the y coordinate\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "x",
                    "types": [
                      "Number"
                    ],
                    "description": " amount to add to the x coordinate\n\n "
                  },
                  {
                    "name": "y",
                    "types": [
                      "Number"
                    ],
                    "description": " amount to add to the y coordinate\n\n "
                  }
                ],
                "description": "Add scalars [[Physics.vector]] to the coordinates.",
                "short_description": "Add scalars [[Physics.vector]] to the coordinates.",
                "line": 198,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "add",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.add",
                "outFile": "vector.html#Physics.vector.prototype.add"
              },
              {
                "id": "Physics.vector#angle",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "optional": true,
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " The angle in radians between this vector and the x-axis OR `v` if specified\n\n "
                  }
                ],
                "description": "Compute the angle between `this` and vector `v` or this and x axis.",
                "short_description": "Compute the angle between `this` and vector `v` or this and x axis.",
                "line": 297,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "angle",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.angle",
                "outFile": "vector.html#Physics.vector.prototype.angle"
              },
              {
                "id": "Physics.vector#angle2",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "left",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The position on the left\n\n "
                      },
                      {
                        "name": "right",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The position on the right\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "left",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The position on the left\n\n "
                  },
                  {
                    "name": "right",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The position on the right\n\n "
                  }
                ],
                "description": "Compute the angle created between three points; left -> this -> right.",
                "short_description": "Compute the angle created between three points; left -> this -> right.",
                "line": 336,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "angle2",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.angle2",
                "outFile": "vector.html#Physics.vector.prototype.angle2"
              },
              {
                "id": "Physics.vector#clamp",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "minV",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The minimum vector\n\n "
                      },
                      {
                        "name": "maxV",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The maximum vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "minV",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The minimum vector\n\n "
                  },
                  {
                    "name": "maxV",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The maximum vector\n\n "
                  }
                ],
                "description": "Constrain vector components to minima and maxima.\n\nThe vector analog of [scalar clamping](http://en.wikipedia.org/wiki/Clamping_(graphics)).",
                "short_description": "Constrain vector components to minima and maxima.\n",
                "line": 733,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "clamp",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.clamp",
                "outFile": "vector.html#Physics.vector.prototype.clamp"
              },
              {
                "id": "Physics.vector#clone",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "optional": true,
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The vector-like object to clone\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this",
                        "description": " If `v` is specified as an argument\n\n "
                      },
                      {
                        "type": "Physics.vector",
                        "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The vector-like object to clone\n\n "
                  }
                ],
                "returns": [
                  {
                    "type": "this",
                    "description": " If `v` is specified as an argument\n\n "
                  },
                  {
                    "type": "Physics.vector",
                    "description": " A new vector instance that clones this vector, if no argument is specified\n\n "
                  }
                ],
                "description": "Create a clone of this vector, or clone another vector into this instance.\n\nThis is especially useful in vector algorithms\nthat use temporary vectors (which most should).\nYou can create temporary vectors and then do things like...\n```\ntemp.clone( otherVector );\n// compute things with temp...\n// then save the result\nresult.clone( tmp );\n```",
                "short_description": "Create a clone of this vector, or clone another vector into this instance.\n",
                "line": 632,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "clone",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.clone",
                "outFile": "vector.html#Physics.vector.prototype.clone"
              },
              {
                "id": "Physics.vector#cross",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the (left-handed) cross product of this vector with `v`.",
                "short_description": "Compute the (left-handed) cross product of this vector with `v`.",
                "line": 261,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "cross",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.cross",
                "outFile": "vector.html#Physics.vector.prototype.cross"
              },
              {
                "id": "Physics.vector#dist",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the distance from this vector to another vector `v`.",
                "short_description": "Compute the distance from this vector to another vector `v`.",
                "line": 394,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "dist",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.dist",
                "outFile": "vector.html#Physics.vector.prototype.dist"
              },
              {
                "id": "Physics.vector#distSq",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the distance squared from this vector to another vector `v`.",
                "short_description": "Compute the distance squared from this vector to another vector `v`.",
                "line": 409,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "distSq",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.distSq",
                "outFile": "vector.html#Physics.vector.prototype.distSq"
              },
              {
                "id": "Physics.vector#dot",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the dot product of this vector with `v`.",
                "short_description": "Compute the dot product of this vector with `v`.",
                "line": 250,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "dot",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.dot",
                "outFile": "vector.html#Physics.vector.prototype.dot"
              },
              {
                "id": "Physics.vector#equals",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Determine if this vector equals another.",
                "short_description": "Determine if this vector equals another.",
                "line": 758,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "equals",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.equals",
                "outFile": "vector.html#Physics.vector.prototype.equals"
              },
              {
                "id": "Physics.vector#get",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "idx",
                        "types": [
                          "Number"
                        ],
                        "description": " The coordinate index (0 or 1)\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "idx",
                    "types": [
                      "Number"
                    ],
                    "description": " The coordinate index (0 or 1)\n\n "
                  }
                ],
                "deprecated": {
                  "since": "0.6.0",
                  "off": "1.0.0"
                },
                "description": "Get the x or y component by index.",
                "short_description": "Get the x or y component by index.",
                "line": 156,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "get",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.get",
                "outFile": "vector.html#Physics.vector.prototype.get"
              },
              {
                "id": "Physics.vector#mult",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "m",
                        "types": [
                          "Number"
                        ],
                        "description": " amount to multiply this vector by\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "m",
                    "types": [
                      "Number"
                    ],
                    "description": " amount to multiply this vector by\n\n "
                  }
                ],
                "description": "Multiply this by a scalar quantity.\n\nSame as scaling the vector by an amount `m`.",
                "short_description": "Multiply this by a scalar quantity.\n",
                "line": 231,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "mult",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.mult",
                "outFile": "vector.html#Physics.vector.prototype.mult"
              },
              {
                "id": "Physics.vector#negate",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "description": "Flip this vector in the opposite direction.",
                "short_description": "Flip this vector in the opposite direction.",
                "line": 711,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "negate",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.negate",
                "outFile": "vector.html#Physics.vector.prototype.negate"
              },
              {
                "id": "Physics.vector#norm",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "description": "Compute the norm (length) of this vector.",
                "short_description": "Compute the norm (length) of this vector.",
                "line": 361,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "norm",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.norm",
                "outFile": "vector.html#Physics.vector.prototype.norm"
              },
              {
                "id": "Physics.vector#normalize",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "description": "Normalise this vector, making it a unit vector.",
                "short_description": "Normalise this vector, making it a unit vector.",
                "line": 454,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "normalize",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.normalize",
                "outFile": "vector.html#Physics.vector.prototype.normalize"
              },
              {
                "id": "Physics.vector#normSq",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "description": "Compute the norm (length) squared of this vector.",
                "short_description": "Compute the norm (length) squared of this vector.",
                "line": 377,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "normSq",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.normSq",
                "outFile": "vector.html#Physics.vector.prototype.normSq"
              },
              {
                "id": "Physics.vector#perp",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "ccw",
                        "optional": true,
                        "types": [
                          "Boolean"
                        ],
                        "description": " flag to indicate that we should rotate counterclockwise\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "ccw",
                    "types": [
                      "Boolean"
                    ],
                    "description": " flag to indicate that we should rotate counterclockwise\n\n "
                  }
                ],
                "description": "Change this vector into a vector that will be perpendicular.\n\nIn other words, rotate by (+-) 90 degrees.",
                "short_description": "Change this vector into a vector that will be perpendicular.\n",
                "line": 426,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "perp",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.perp",
                "outFile": "vector.html#Physics.vector.prototype.perp"
              },
              {
                "id": "Physics.vector#proj",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
                "short_description": "Compute the [scalar projection](http://en.wikipedia.org/wiki/Vector_projection#Scalar_projection_2) of this along `v`.",
                "line": 272,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "proj",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.proj",
                "outFile": "vector.html#Physics.vector.prototype.proj"
              },
              {
                "id": "Physics.vector#rotate",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply the rotational part of\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  },
                  {
                    "arguments": [
                      {
                        "name": "ang",
                        "types": [
                          "Number"
                        ],
                        "description": " The angle (in radians), to rotate by\n\n "
                      },
                      {
                        "name": "o",
                        "optional": true,
                        "types": [
                          "Vectorish"
                        ],
                        "description": " The point of origin of the rotation\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply the rotational part of\n\n "
                  },
                  {
                    "name": "ang",
                    "types": [
                      "Number"
                    ],
                    "description": " The angle (in radians), to rotate by\n\n "
                  },
                  {
                    "name": "o",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " The point of origin of the rotation\n\n "
                  }
                ],
                "description": "Rotate this vector.\n\nAn angle and rotation origin can be specified,\nor a transform can be specified and only the rotation\nportion of that transform will be applied",
                "short_description": "Rotate this vector.\n",
                "line": 535,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "rotate",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.rotate",
                "outFile": "vector.html#Physics.vector.prototype.rotate"
              },
              {
                "id": "Physics.vector#rotateInv",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply the inverse rotational part of\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply the inverse rotational part of\n\n "
                  }
                ],
                "description": "Apply the inverse rotation of a transform.\n\nOnly the inverse rotation portion of\nthat transform will be applied.",
                "short_description": "Apply the inverse rotation of a transform.\n",
                "line": 577,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "rotateInv",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.rotateInv",
                "outFile": "vector.html#Physics.vector.prototype.rotateInv"
              },
              {
                "id": "Physics.vector#set",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "x",
                        "types": [
                          "Number"
                        ],
                        "description": " x coordinate\n\n "
                      },
                      {
                        "name": "y",
                        "types": [
                          "Number"
                        ],
                        "description": " y coordinate\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "x",
                    "types": [
                      "Number"
                    ],
                    "description": " x coordinate\n\n "
                  },
                  {
                    "name": "y",
                    "types": [
                      "Number"
                    ],
                    "description": " y coordinate\n\n "
                  }
                ],
                "description": "Sets the x and y components of this vector.",
                "short_description": "Sets the x and y components of this vector.",
                "line": 141,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "set",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.set",
                "outFile": "vector.html#Physics.vector.prototype.set"
              },
              {
                "id": "Physics.vector#sub",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "x",
                        "types": [
                          "Number"
                        ],
                        "description": " amount to subtract from the x coordinate\n\n "
                      },
                      {
                        "name": "y",
                        "types": [
                          "Number"
                        ],
                        "description": " amount to subtract from the y coordinate\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "x",
                    "types": [
                      "Number"
                    ],
                    "description": " amount to subtract from the x coordinate\n\n "
                  },
                  {
                    "name": "y",
                    "types": [
                      "Number"
                    ],
                    "description": " amount to subtract from the y coordinate\n\n "
                  }
                ],
                "description": "Subtract scalars [[Physics.vector]] from the coordinates.",
                "short_description": "Subtract scalars [[Physics.vector]] from the coordinates.",
                "line": 214,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "sub",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.sub",
                "outFile": "vector.html#Physics.vector.prototype.sub"
              },
              {
                "id": "Physics.vector#swap",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Swap values with other vector.",
                "short_description": "Swap values with other vector.",
                "line": 665,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "swap",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.swap",
                "outFile": "vector.html#Physics.vector.prototype.swap"
              },
              {
                "id": "Physics.vector#toString",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "String"
                      }
                    ]
                  }
                ],
                "description": "Get a formatted string of this vector's coordinates.",
                "short_description": "Get a formatted string of this vector's coordinates.",
                "line": 746,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "toString",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.toString",
                "outFile": "vector.html#Physics.vector.prototype.toString"
              },
              {
                "id": "Physics.vector#transform",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply\n\n "
                  }
                ],
                "description": "Apply a [[Physics.transform]] to this vector.",
                "short_description": "Apply a [[Physics.transform]] to this vector.",
                "line": 480,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "transform",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.transform",
                "outFile": "vector.html#Physics.vector.prototype.transform"
              },
              {
                "id": "Physics.vector#transformInv",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply the inverse of\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply the inverse of\n\n "
                  }
                ],
                "description": "Apply an inverse [[Physics.transform]] to this vector.",
                "short_description": "Apply an inverse [[Physics.transform]] to this vector.",
                "line": 504,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "transformInv",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.transformInv",
                "outFile": "vector.html#Physics.vector.prototype.transformInv"
              },
              {
                "id": "Physics.vector#translate",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply the translational part of\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply the translational part of\n\n "
                  }
                ],
                "description": "Apply the translation of a transform.\n\nOnly the translation portion of\nthat transform will be applied.",
                "short_description": "Apply the translation of a transform.\n",
                "line": 594,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "translate",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.translate",
                "outFile": "vector.html#Physics.vector.prototype.translate"
              },
              {
                "id": "Physics.vector#translateInv",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "t",
                        "types": [
                          "Physics.transform"
                        ],
                        "description": " The transformation to apply the inverse translational part of\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "t",
                    "types": [
                      "Physics.transform"
                    ],
                    "description": " The transformation to apply the inverse translational part of\n\n "
                  }
                ],
                "description": "Apply the inverse translation of a transform.\n\nOnly the inverse translation portion of\nthat transform will be applied.",
                "short_description": "Apply the inverse translation of a transform.\n",
                "line": 608,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "translateInv",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.translateInv",
                "outFile": "vector.html#Physics.vector.prototype.translateInv"
              },
              {
                "id": "Physics.vector#vadd",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " vector to add\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " vector to add\n\n "
                  }
                ],
                "description": "Add a [[Physics.vector]] to `this`.",
                "short_description": "Add a [[Physics.vector]] to `this`.",
                "line": 167,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "vadd",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.vadd",
                "outFile": "vector.html#Physics.vector.prototype.vadd"
              },
              {
                "id": "Physics.vector#values",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Object"
                      }
                    ]
                  }
                ],
                "description": "Get the coordinate values as an object literal.",
                "short_description": "Get the coordinate values as an object literal.",
                "line": 682,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "values",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.values",
                "outFile": "vector.html#Physics.vector.prototype.values"
              },
              {
                "id": "Physics.vector#vproj",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " The other vector\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " The other vector\n\n "
                  }
                ],
                "description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
                "short_description": "Compute the [vector projection](http://en.wikipedia.org/wiki/Vector_projection#Vector_projection_2) of this along `v` and copy the result into this vector.",
                "line": 284,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "vproj",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.vproj",
                "outFile": "vector.html#Physics.vector.prototype.vproj"
              },
              {
                "id": "Physics.vector#vsub",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "v",
                        "types": [
                          "Physics.vector"
                        ],
                        "description": " vector to subtract\n\n "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "v",
                    "types": [
                      "Physics.vector"
                    ],
                    "description": " vector to subtract\n\n "
                  }
                ],
                "description": "Subtract a [[Physics.vector]] from `this`.",
                "short_description": "Subtract a [[Physics.vector]] from `this`.",
                "line": 182,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "vsub",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.vsub",
                "outFile": "vector.html#Physics.vector.prototype.vsub"
              },
              {
                "id": "Physics.vector#x",
                "type": "namespace",
                "description": "Getter/setter property for the x coordinate.",
                "short_description": "Getter/setter property for the x coordinate.",
                "line": 103,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "x",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.x",
                "outFile": "vector.html#Physics.vector.prototype.x"
              },
              {
                "id": "Physics.vector#y",
                "type": "namespace",
                "description": "Getter/setter property for the y coordinate.",
                "short_description": "Getter/setter property for the y coordinate.",
                "line": 118,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "y",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.y",
                "outFile": "vector.html#Physics.vector.prototype.y"
              },
              {
                "id": "Physics.vector#zero",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "description": "Set the coordinates of this vector to zero.",
                "short_description": "Set the coordinates of this vector to zero.",
                "line": 696,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "zero",
                "name_prefix": "Physics.vector#",
                "path": "Physics.vector.prototype.zero",
                "outFile": "vector.html#Physics.vector.prototype.zero"
              },
              {
                "id": "Physics.vector.axis",
                "type": "constant",
                "signatures": [
                  {
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "description": "Read-only axis vectors for general reference.\n\nExample:\n\n```javascript\nPhysics.vector.axis[0]; // The x axis unit vector\nPhysics.vector.axis[1]; // The y axis unit vector\n```",
                "short_description": "Read-only axis vectors for general reference.\n",
                "line": 777,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "axis",
                "name_prefix": "Physics.vector.",
                "path": "Physics.vector.axis",
                "outFile": "vector.html#Physics.vector.axis"
              },
              {
                "id": "new Physics.vector",
                "type": "constructor",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "x",
                        "types": [
                          "Number"
                        ],
                        "description": " The x coordinate\n\n "
                      },
                      {
                        "name": "y",
                        "types": [
                          "Number"
                        ],
                        "description": " The y coordinate\n\n "
                      }
                    ]
                  },
                  {
                    "arguments": [
                      {
                        "name": "vect",
                        "types": [
                          "Vectorish"
                        ],
                        "description": " A vector-like object to clone\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "x",
                    "types": [
                      "Number"
                    ],
                    "description": " The x coordinate\n\n "
                  },
                  {
                    "name": "y",
                    "types": [
                      "Number"
                    ],
                    "description": " The y coordinate\n\n "
                  },
                  {
                    "name": "vect",
                    "types": [
                      "Vectorish"
                    ],
                    "description": " A vector-like object to clone\n\n "
                  }
                ],
                "description": "Vector Constructor.",
                "short_description": "Vector Constructor.",
                "line": 59,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "new",
                "name_prefix": "Physics.vector.",
                "path": "Physics.vector.new",
                "outFile": "vector.html#Physics.vector.new"
              },
              {
                "id": "Physics.vector.zero",
                "type": "constant",
                "signatures": [
                  {
                    "returns": [
                      {
                        "type": "zeroVector"
                      }
                    ]
                  }
                ],
                "description": "Read-only zero vector for reference",
                "short_description": "Read-only zero vector for reference",
                "line": 787,
                "aliases": [],
                "children": [],
                "file": "src/math/vector.js",
                "name": "zero",
                "name_prefix": "Physics.vector.",
                "path": "Physics.vector.zero",
                "outFile": "vector.html#Physics.vector.zero"
              }
            ],
            "file": "src/math/vector.js",
            "subclasses": [],
            "name": "vector",
            "name_prefix": "Physics.",
            "path": "Physics.vector",
            "outFile": "vector.html"
          },
          {
            "id": "Physics.world",
            "type": "class",
            "related_to": "Physics",
            "description": "The world class and factory function.\n\nUse [[Physics]] to create worlds.",
            "short_description": "The world class and factory function.\n",
            "line": 8,
            "aliases": [],
            "children": [
              {
                "id": "Physics.world#add",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "things",
                        "types": [
                          "Object",
                          "Array"
                        ],
                        "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "things",
                    "types": [
                      "Object",
                      "Array"
                    ],
                    "description": " The thing, or array of things (body, behavior, integrator, or renderer) to add.\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
                "short_description": "Multipurpose add method. Add one or many bodies, behaviors, integrators, renderers...",
                "line": 204,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "add",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.add",
                "outFile": "world.html#Physics.world.prototype.add"
              },
              {
                "id": "Physics.world#addBehavior",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "behavior",
                        "types": [
                          "Behavior"
                        ],
                        "description": " The behavior to add\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "behavior",
                    "types": [
                      "Behavior"
                    ],
                    "description": " The behavior to add\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Add a behavior to the world",
                "short_description": "Add a behavior to the world",
                "line": 467,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "addBehavior",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.addBehavior",
                "outFile": "world.html#Physics.world.prototype.addBehavior"
              },
              {
                "id": "Physics.world#addBody",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "body",
                        "types": [
                          "Body"
                        ],
                        "description": " The behavior to add\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "body",
                    "types": [
                      "Body"
                    ],
                    "description": " The behavior to add\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Add a body to the world",
                "short_description": "Add a body to the world",
                "line": 535,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "addBody",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.addBody",
                "outFile": "world.html#Physics.world.prototype.addBody"
              },
              {
                "id": "Physics.world#destroy",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": []
                  }
                ],
                "description": "Destroy the world.\n(Bwahahahahaha!)",
                "short_description": "Destroy the world.\n(Bwahahahahaha!)",
                "line": 803,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "destroy",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.destroy",
                "outFile": "world.html#Physics.world.prototype.destroy"
              },
              {
                "id": "Physics.world#find",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "rules",
                        "types": [
                          "Object"
                        ],
                        "description": " Query rules\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  },
                  {
                    "arguments": [
                      {
                        "name": "filter",
                        "arguments": [
                          {
                            "name": "body",
                            "description": " Each body in the world\n\n     ",
                            "types": [
                              "Body"
                            ]
                          }
                        ],
                        "callback": true,
                        "types": [
                          "Function"
                        ],
                        "description": " Filter function called to check bodies\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "rules",
                    "types": [
                      "Object"
                    ],
                    "description": " Query rules\n\n     "
                  },
                  {
                    "name": "filter",
                    "types": [
                      "Function"
                    ],
                    "description": " Filter function called to check bodies\n\n     "
                  },
                  {
                    "name": "body",
                    "types": [
                      "Body"
                    ],
                    "description": " Each body in the world\n\n     "
                  }
                ],
                "related_to": "Physics.query",
                "description": "Find all matching bodies based on query rules.",
                "short_description": "Find all matching bodies based on query rules.",
                "line": 624,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "find",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.find",
                "outFile": "world.html#Physics.world.prototype.find"
              },
              {
                "id": "Physics.world#findOne",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "rules",
                        "types": [
                          "Object"
                        ],
                        "description": " Query rules.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Body"
                      },
                      {
                        "type": false
                      }
                    ]
                  },
                  {
                    "arguments": [
                      {
                        "name": "filter",
                        "arguments": [
                          {
                            "name": "body",
                            "description": " Each body in the world\n\n     ",
                            "types": [
                              "Body"
                            ]
                          }
                        ],
                        "callback": true,
                        "types": [
                          "Function"
                        ],
                        "description": " Filter function called to check bodies\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Body"
                      },
                      {
                        "type": false
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "rules",
                    "types": [
                      "Object"
                    ],
                    "description": " Query rules.\n\n     "
                  },
                  {
                    "name": "filter",
                    "types": [
                      "Function"
                    ],
                    "description": " Filter function called to check bodies\n\n     "
                  },
                  {
                    "name": "body",
                    "types": [
                      "Body"
                    ],
                    "description": " Each body in the world\n\n     "
                  }
                ],
                "related_to": "Physics.query",
                "description": "Find first matching body based on query rules.",
                "short_description": "Find first matching body based on query rules.",
                "line": 606,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "findOne",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.findOne",
                "outFile": "world.html#Physics.world.prototype.findOne"
              },
              {
                "id": "Physics.world#getBehaviors",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "returns": [
                  {
                    "type": "Array",
                    "description": " Array of behaviors\n\n     "
                  }
                ],
                "description": "Get copied list of behaviors in the world",
                "short_description": "Get copied list of behaviors in the world",
                "line": 492,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "getBehaviors",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.getBehaviors",
                "outFile": "world.html#Physics.world.prototype.getBehaviors"
              },
              {
                "id": "Physics.world#getBodies",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Array"
                      }
                    ]
                  }
                ],
                "returns": [
                  {
                    "type": "Array",
                    "description": " Array of bodies\n\n     "
                  }
                ],
                "description": "Get copied list of bodies in the world",
                "short_description": "Get copied list of bodies in the world",
                "line": 560,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "getBodies",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.getBodies",
                "outFile": "world.html#Physics.world.prototype.getBodies"
              },
              {
                "id": "Physics.world#has",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "thing",
                        "types": [
                          "Object"
                        ],
                        "description": " The thing to test\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Boolean",
                        "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "thing",
                    "types": [
                      "Object"
                    ],
                    "description": " The thing to test\n\n     "
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " `true` if thing is in the world, `false` otherwise.\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Determine if a thing has been added to world.",
                "short_description": "Determine if a thing has been added to world.",
                "line": 305,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "has",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.has",
                "outFile": "world.html#Physics.world.prototype.has"
              },
              {
                "id": "Physics.world#init",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "options",
                        "optional": true,
                        "types": [
                          "Object"
                        ],
                        "description": " configuration options (see constructor)\n\n     "
                      },
                      {
                        "name": "fn",
                        "arguments": [
                          {
                            "name": "world"
                          },
                          {
                            "name": "Physics"
                          }
                        ],
                        "callback": true,
                        "optional": true,
                        "types": [
                          "Function",
                          "Array"
                        ],
                        "description": " Callback function or array of callbacks called with this === world\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "options",
                    "types": [
                      "Object"
                    ],
                    "description": " configuration options (see constructor)\n\n     "
                  },
                  {
                    "name": "fn",
                    "types": [
                      "Function",
                      "Array"
                    ],
                    "description": " Callback function or array of callbacks called with this === world\n\n     "
                  }
                ],
                "internal": true,
                "related_to": "new Physics.world",
                "description": "Initialization",
                "short_description": "Initialization",
                "line": 144,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "init",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.init",
                "outFile": "world.html#Physics.world.prototype.init"
              },
              {
                "id": "Physics.world#integrator",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "integrator",
                        "optional": true,
                        "types": [
                          "Integrator"
                        ],
                        "description": " The integrator to set on the world\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Integrator",
                        "description": " The currently set integrator if `integrator` not specified\n\n     "
                      },
                      {
                        "type": "this",
                        "description": " for chaining if `integrator` specified\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "integrator",
                    "types": [
                      "Integrator"
                    ],
                    "description": " The integrator to set on the world\n\n     "
                  }
                ],
                "returns": [
                  {
                    "type": "Integrator",
                    "description": " The currently set integrator if `integrator` not specified\n\n     "
                  },
                  {
                    "type": "this",
                    "description": " for chaining if `integrator` specified\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Get or Set the integrator",
                "short_description": "Get or Set the integrator",
                "line": 351,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "integrator",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.integrator",
                "outFile": "world.html#Physics.world.prototype.integrator"
              },
              {
                "id": "Physics.world#isPaused",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "Boolean"
                      }
                    ]
                  }
                ],
                "returns": [
                  {
                    "type": "Boolean",
                    "description": " Returns `true` if world is paused, `false` otherwise.\n\n     "
                  }
                ],
                "description": "Determine if world is paused.",
                "short_description": "Determine if world is paused.",
                "line": 792,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "isPaused",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.isPaused",
                "outFile": "world.html#Physics.world.prototype.isPaused"
              },
              {
                "id": "Physics.world#iterate",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "dt",
                        "types": [
                          "Number"
                        ],
                        "description": " The timestep\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "dt",
                    "types": [
                      "Number"
                    ],
                    "description": " The timestep\n\n     "
                  }
                ],
                "internal": true,
                "description": "Do a single iteration.",
                "short_description": "Do a single iteration.",
                "line": 639,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "iterate",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.iterate",
                "outFile": "world.html#Physics.world.prototype.iterate"
              },
              {
                "id": "Physics.world#options",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "cfg",
                        "types": [
                          "Object"
                        ],
                        "description": " configuration options (see constructor)\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Object",
                        "description": " Options container\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "options",
                    "types": [
                      "Object"
                    ],
                    "description": " configuration options (see constructor)\n\n     "
                  }
                ],
                "returns": [
                  {
                    "type": "Object",
                    "description": " Options container\n\n     "
                  }
                ],
                "description": "Set config options. Also access options by `.options.<option>`.",
                "short_description": "Set config options. Also access options by `.options.<option>`.",
                "line": 196,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "options",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.options",
                "outFile": "world.html#Physics.world.prototype.options"
              },
              {
                "id": "Physics.world#pause",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "chainable": true,
                "description": "Pause the world (step calls do nothing).",
                "short_description": "Pause the world (step calls do nothing).",
                "line": 767,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "pause",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.pause",
                "outFile": "world.html#Physics.world.prototype.pause"
              },
              {
                "id": "Physics.world#remove",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "things",
                        "types": [
                          "Object",
                          "Array"
                        ],
                        "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "things",
                    "types": [
                      "Object",
                      "Array"
                    ],
                    "description": " The thing, or array of things (body, behavior, integrator, or renderer) to remove.\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
                "short_description": "Multipurpose remove method. Remove one or many bodies, behaviors, integrators, renderers...",
                "line": 252,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "remove",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.remove",
                "outFile": "world.html#Physics.world.prototype.remove"
              },
              {
                "id": "Physics.world#removeBehavior",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "behavior",
                        "types": [
                          "Behavior"
                        ],
                        "description": " The behavior to remove\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "behavior",
                    "types": [
                      "Behavior"
                    ],
                    "description": " The behavior to remove\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Remove a behavior from the world",
                "short_description": "Remove a behavior from the world",
                "line": 504,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "removeBehavior",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.removeBehavior",
                "outFile": "world.html#Physics.world.prototype.removeBehavior"
              },
              {
                "id": "Physics.world#removeBody",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "body",
                        "types": [
                          "Body"
                        ],
                        "description": " The body to remove\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "body",
                    "types": [
                      "Body"
                    ],
                    "description": " The body to remove\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Remove a body from the world",
                "short_description": "Remove a body from the world",
                "line": 572,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "removeBody",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.removeBody",
                "outFile": "world.html#Physics.world.prototype.removeBody"
              },
              {
                "id": "Physics.world#render",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "chainable": true,
                "description": "Render current world state using the renderer",
                "short_description": "Render current world state using the renderer",
                "line": 747,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "render",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.render",
                "outFile": "world.html#Physics.world.prototype.render"
              },
              {
                "id": "Physics.world#renderer",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "renderer",
                        "optional": true,
                        "types": [
                          "Renderer"
                        ],
                        "description": " The renderer to set on the world\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Renderer",
                        "description": " The currently set renderer if `renderer` not specified\n\n     "
                      },
                      {
                        "type": "this",
                        "description": " for chaining if `renderer` specified\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "renderer",
                    "types": [
                      "Renderer"
                    ],
                    "description": " The renderer to set on the world\n\n     "
                  }
                ],
                "returns": [
                  {
                    "type": "Renderer",
                    "description": " The currently set renderer if `renderer` not specified\n\n     "
                  },
                  {
                    "type": "this",
                    "description": " for chaining if `renderer` specified\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Get or Set the renderer",
                "short_description": "Get or Set the renderer",
                "line": 391,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "renderer",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.renderer",
                "outFile": "world.html#Physics.world.prototype.renderer"
              },
              {
                "id": "Physics.world#step",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "now",
                        "optional": true,
                        "types": [
                          "Number"
                        ],
                        "description": " Current unix timestamp\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "now",
                    "types": [
                      "Number"
                    ],
                    "description": " Current unix timestamp\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Step the world up to specified time or do one step if no time is specified.",
                "short_description": "Step the world up to specified time or do one step if no time is specified.",
                "line": 650,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "step",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.step",
                "outFile": "world.html#Physics.world.prototype.step"
              },
              {
                "id": "Physics.world#timestep",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "dt",
                        "optional": true,
                        "types": [
                          "Number"
                        ],
                        "description": " The time step for the world\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "Number",
                        "description": " The currently set time step if `dt` not specified\n\n     "
                      },
                      {
                        "type": "this",
                        "description": " for chaining if `dt` specified\n\n     "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "dt",
                    "types": [
                      "Number"
                    ],
                    "description": " The time step for the world\n\n     "
                  }
                ],
                "returns": [
                  {
                    "type": "Number",
                    "description": " The currently set time step if `dt` not specified\n\n     "
                  },
                  {
                    "type": "this",
                    "description": " for chaining if `dt` specified\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Get or Set the timestep",
                "short_description": "Get or Set the timestep",
                "line": 431,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "timestep",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.timestep",
                "outFile": "world.html#Physics.world.prototype.timestep"
              },
              {
                "id": "Physics.world#unpause",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "chainable": true,
                "description": "Unpause the world (step calls continue as usual).",
                "short_description": "Unpause the world (step calls continue as usual).",
                "line": 779,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "unpause",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.unpause",
                "outFile": "world.html#Physics.world.prototype.unpause"
              },
              {
                "id": "Physics.world#wakeUpAll",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [],
                    "returns": [
                      {
                        "type": "this"
                      }
                    ]
                  }
                ],
                "returns": [
                  {
                    "type": "this",
                    "description": " for chaining\n\n     "
                  }
                ],
                "chainable": true,
                "description": "Wake up all bodies in world.",
                "short_description": "Wake up all bodies in world.",
                "line": 451,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "wakeUpAll",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.wakeUpAll",
                "outFile": "world.html#Physics.world.prototype.wakeUpAll"
              },
              {
                "id": "Physics.world#warp",
                "type": "instance method",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "warp",
                        "optional": true,
                        "types": [
                          "Number"
                        ],
                        "description": " The time warp factor\n\n     "
                      }
                    ],
                    "returns": [
                      {
                        "type": "this"
                      },
                      {
                        "type": "Number"
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "warp",
                    "types": [
                      "Number"
                    ],
                    "description": " The time warp factor\n\n     "
                  }
                ],
                "description": "Speed up or slow down the iteration by this factor.\n\nExample:\n```javascript\n// slow motion... 10x slower\nworld.warp( 0.01 );\n```",
                "short_description": "Speed up or slow down the iteration by this factor.\n",
                "line": 732,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "warp",
                "name_prefix": "Physics.world#",
                "path": "Physics.world.prototype.warp",
                "outFile": "world.html#Physics.world.prototype.warp"
              },
              {
                "id": "new Physics.world",
                "type": "constructor",
                "signatures": [
                  {
                    "arguments": [
                      {
                        "name": "options",
                        "optional": true,
                        "types": [
                          "Object"
                        ],
                        "description": " configuration options (see description)\n\n "
                      },
                      {
                        "name": "fn",
                        "arguments": [
                          {
                            "name": "world",
                            "description": " The current world created\n\n ",
                            "types": [
                              "Physics.world"
                            ]
                          },
                          {
                            "name": "Physics",
                            "description": " The Physics namespace\n\n ",
                            "types": [
                              "Physics"
                            ]
                          }
                        ],
                        "callback": true,
                        "optional": true,
                        "types": [
                          "Function",
                          "Array"
                        ],
                        "description": " Callback function or array of callbacks called with this === world\n\n "
                      }
                    ]
                  }
                ],
                "arguments": [
                  {
                    "name": "options",
                    "types": [
                      "Object"
                    ],
                    "description": " configuration options (see description)\n\n "
                  },
                  {
                    "name": "fn",
                    "types": [
                      "Function",
                      "Array"
                    ],
                    "description": " Callback function or array of callbacks called with this === world\n\n "
                  },
                  {
                    "name": "world",
                    "types": [
                      "Physics.world"
                    ],
                    "description": " The current world created\n\n "
                  },
                  {
                    "name": "Physics",
                    "types": [
                      "Physics"
                    ],
                    "description": " The Physics namespace\n\n "
                  }
                ],
                "alias_of": "Physics",
                "description": "World Constructor.\n\nUse [[Physics]] to create worlds.\n\nConfiguration options and defaults:\n\n```javascript\n{\n // default timestep\n timestep: 6,\n // maximum number of iterations per step\n maxIPF: 4,\n\n // default integrator\n integrator: 'verlet',\n\n // is sleeping disabled?\n sleepDisabled: false,\n // speed at which bodies wake up\n sleepSpeedLimit: 0.1,\n // variance in position below which bodies fall asleep\n sleepVarianceLimit: 2,\n // time (ms) before sleepy bodies fall asleep\n sleepTimeLimit: 500\n}\n```\n\nIf called with an array of functions, and any functions\nreturn a [promise-like object](http://promises-aplus.github.io/promises-spec/),\neach remaining callback will be called only when that promise is resolved.\n\nExample:\n\n```javascript\n// hypothetical resources need to be loaded...\nPhysics( cfg, [\n    function( world ){\n        var dfd = $.Deferred()\n            ,images = []\n            ,toLoad = myImages.length\n            ,callback = function(){\n                toLoad--;\n                // wait for all images to be loaded\n                if ( toLoad <= 0 ){\n                    dfd.resolve();\n                }\n            }\n            ;\n\n        // load images\n        $.each(myImages, function( src ){\n            var img = new Image();\n            img.onload = callback;\n            img.src = src;\n        });\n\n        return dfd.promise();\n    },\n    function( world ){\n        // won't be executed until images are loaded\n        // initialize world... etc...\n    }\n]);\n```",
                "short_description": "World Constructor.\n",
                "line": 124,
                "aliases": [],
                "children": [],
                "file": "src/core/world.js",
                "name": "new",
                "name_prefix": "Physics.world.",
                "path": "Physics.world.new",
                "outFile": "world.html#Physics.world.new"
              }
            ],
            "file": "src/core/world.js",
            "subclasses": [],
            "name": "world",
            "name_prefix": "Physics.",
            "path": "Physics.world",
            "outFile": "world.html"
          }
        ],
        "file": "src/intro.js",
        "name": "Physics",
        "path": "Physics",
        "outFile": "intro.html#Physics"
      },
      {
        "id": "wrapRule",
        "type": "method",
        "signatures": [
          {
            "arguments": [
              {
                "name": "fn",
                "arguments": [
                  {
                    "name": "propVal"
                  }
                ],
                "callback": true,
                "types": [
                  "Function"
                ],
                "description": " The test function\n\n "
              },
              {
                "name": "prop",
                "types": [
                  "String"
                ],
                "description": " The property name to test\n\n "
              }
            ],
            "returns": [
              {
                "type": "Function"
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "fn",
            "types": [
              "Function"
            ],
            "description": " The test function\n\n "
          },
          {
            "name": "prop",
            "types": [
              "String"
            ],
            "description": " The property name to test\n\n "
          },
          {
            "name": "propVal",
            "types": [
              "Mixed"
            ],
            "description": " The property value\n\n "
          }
        ],
        "hide": true,
        "description": "Get test function to test on sub property.",
        "short_description": "Get test function to test on sub property.",
        "line": 18,
        "aliases": [],
        "children": [],
        "file": "src/core/query.js",
        "name": "wrapRule",
        "path": "wrapRule",
        "outFile": "query.html#wrapRule"
      },
      {
        "id": "Physics.statistics.pushRunningAvg",
        "type": "class method",
        "signatures": [
          {
            "arguments": [
              {
                "name": "v",
                "types": [
                  "Number"
                ],
                "description": " is value to push\n\n     "
              },
              {
                "name": "k",
                "types": [
                  "Number"
                ],
                "description": " is num elements\n\n     "
              },
              {
                "name": "m",
                "types": [
                  "Number"
                ],
                "description": " is current mean\n\n     "
              },
              {
                "name": "s",
                "types": [
                  "Number"
                ],
                "description": " is current s value\n\n     "
              }
            ],
            "returns": [
              {
                "type": "Array",
                "description": " Returns a 2 element array containing the next mean, and s value\n\n     "
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "v",
            "types": [
              "Number"
            ],
            "description": " is value to push\n\n     "
          },
          {
            "name": "k",
            "types": [
              "Number"
            ],
            "description": " is num elements\n\n     "
          },
          {
            "name": "m",
            "types": [
              "Number"
            ],
            "description": " is current mean\n\n     "
          },
          {
            "name": "s",
            "types": [
              "Number"
            ],
            "description": " is current s value\n\n     "
          }
        ],
        "returns": [
          {
            "type": "Array",
            "description": " Returns a 2 element array containing the next mean, and s value\n\n     "
          }
        ],
        "description": "Push a value to a running average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n\nNote: variance can be calculated from the \"s\" value by multiplying it by `1/(k-1)`",
        "short_description": "Push a value to a running average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n",
        "line": 17,
        "aliases": [],
        "children": [],
        "file": "src/math/statistics.js",
        "name": "pushRunningAvg",
        "name_prefix": "Physics.statistics.",
        "path": "Physics.statistics.pushRunningAvg",
        "outFile": "statistics.html#Physics.statistics.pushRunningAvg"
      },
      {
        "id": "Physics.statistics.pushRunningVectorAvg",
        "type": "class method",
        "signatures": [
          {
            "arguments": [
              {
                "name": "v",
                "types": [
                  "Physics.vector"
                ],
                "description": " is vector to push\n\n    "
              },
              {
                "name": "k",
                "types": [
                  "Number"
                ],
                "description": " is num elements\n\n    "
              },
              {
                "name": "m",
                "types": [
                  "Physics.vector"
                ],
                "description": " is current mean\n\n    "
              },
              {
                "name": "s",
                "optional": true,
                "types": [
                  "Physics.vector"
                ],
                "description": " is current s value\n\n    "
              }
            ]
          }
        ],
        "arguments": [
          {
            "name": "v",
            "types": [
              "Physics.vector"
            ],
            "description": " is vector to push\n\n    "
          },
          {
            "name": "k",
            "types": [
              "Number"
            ],
            "description": " is num elements\n\n    "
          },
          {
            "name": "m",
            "types": [
              "Physics.vector"
            ],
            "description": " is current mean\n\n    "
          },
          {
            "name": "s",
            "types": [
              "Physics.vector"
            ],
            "description": " is current s value\n\n    "
          }
        ],
        "description": "Push a vector to a running vector average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n\nCalculations are done in place. The `m` and `s` parameters are altered.\n\nNote: variance can be calculated from the \"s\" vector by multiplying it by `1/(k-1)`\n\nIf s value is ommitted it won't be used.",
        "short_description": "Push a vector to a running vector average calculation.\nsee [http://www.johndcook.com/blog/standard_deviation]\n",
        "line": 44,
        "aliases": [],
        "children": [],
        "file": "src/math/statistics.js",
        "name": "pushRunningVectorAvg",
        "name_prefix": "Physics.statistics.",
        "path": "Physics.statistics.pushRunningVectorAvg",
        "outFile": "statistics.html#Physics.statistics.pushRunningVectorAvg"
      },
      {
        "id": "special",
        "type": "section",
        "description": "This section contains miscellaneous functionality.",
        "short_description": "This section contains miscellaneous functionality.",
        "line": 54,
        "aliases": [],
        "children": [
          {
            "id": "Vectorish",
            "type": "class",
            "description": "Any object with `.x` and `.y` properties.\n\nA `Vectorish` isn't really a class. In this documentation, when\nan argument is specified as a `Vectorish` it means either a true\n[[Physics.vector]] instance, or an object literal with `.x` and `.y`\nproperties.",
            "short_description": "Any object with `.x` and `.y` properties.\n",
            "line": 49,
            "aliases": [],
            "children": [],
            "file": "src/math/vector.js",
            "subclasses": [],
            "name": "Vectorish",
            "path": "Vectorish",
            "outFile": "vector.html"
          }
        ],
        "file": "src/intro.js",
        "name": "Special",
        "path": "special"
      }
    ]
  }
}