mirror of
https://github.com/liabru/matter-js.git
synced 2024-11-27 09:50:52 -05:00
improve Matter.Body docs for functions and properties including readonly
This commit is contained in:
parent
3ff6ff4372
commit
85a9eb2df5
1 changed files with 141 additions and 99 deletions
228
src/body/Body.js
228
src/body/Body.js
|
@ -1,7 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* The `Matter.Body` module contains methods for creating and manipulating body models.
|
* The `Matter.Body` module contains methods for creating and manipulating rigid bodies.
|
||||||
* A `Matter.Body` is a rigid body that can be simulated by a `Matter.Engine`.
|
* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`.
|
||||||
* Factories for commonly used body configurations (such as rectangles, circles and other polygons) can be found in the module `Matter.Bodies`.
|
|
||||||
*
|
*
|
||||||
* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).
|
* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).
|
||||||
|
|
||||||
|
@ -346,7 +345,7 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the moment of inertia (i.e. second moment of area) of the body.
|
* Sets the moment of inertia of the body. This is the second moment of area in two dimensions.
|
||||||
* Inverse inertia is automatically updated to reflect the change. Mass is not changed.
|
* Inverse inertia is automatically updated to reflect the change. Mass is not changed.
|
||||||
* @method setInertia
|
* @method setInertia
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
|
@ -363,7 +362,7 @@ var Axes = require('../geometry/Axes');
|
||||||
* They are then automatically translated to world space based on `body.position`.
|
* They are then automatically translated to world space based on `body.position`.
|
||||||
*
|
*
|
||||||
* The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).
|
* The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).
|
||||||
* Vertices must form a convex hull, concave hulls are not supported.
|
* Vertices must form a convex hull. Concave vertices must be decomposed into convex parts.
|
||||||
*
|
*
|
||||||
* @method setVertices
|
* @method setVertices
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
|
@ -545,8 +544,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the current linear velocity of the body. Updates `body.speed`. See `body.velocity` for details.
|
* Sets the current linear velocity of the body.
|
||||||
* Use this instead of setting `body.velocity`. See also `Body.applyForce`.
|
* Affects body speed.
|
||||||
* @method setVelocity
|
* @method setVelocity
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {vector} velocity
|
* @param {vector} velocity
|
||||||
|
@ -561,7 +560,7 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current linear velocity of the body. See `body.velocity` for details.
|
* Gets the current linear velocity of the body.
|
||||||
* @method getVelocity
|
* @method getVelocity
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @return {vector} velocity
|
* @return {vector} velocity
|
||||||
|
@ -576,7 +575,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current linear speed of the body. See `body.speed` for details.
|
* Gets the current linear speed of the body.
|
||||||
|
* Equivalent to the magnitude of its velocity.
|
||||||
* @method getSpeed
|
* @method getSpeed
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @return {number} speed
|
* @return {number} speed
|
||||||
|
@ -586,7 +586,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the current linear speed of the body. See `body.speed` for details. Use this instead of setting `body.speed`.
|
* Sets the current linear speed of the body.
|
||||||
|
* Direction is maintained. Affects body velocity.
|
||||||
* @method setSpeed
|
* @method setSpeed
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} speed
|
* @param {number} speed
|
||||||
|
@ -596,8 +597,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the current rotational velocity of the body. Updates `body.angularSpeed`. See `body.angularVelocity` for details.
|
* Sets the current rotational velocity of the body.
|
||||||
* Use this instead of setting `body.angularVelocity`. See also `Body.applyForce`.
|
* Affects body angular speed.
|
||||||
* @method setAngularVelocity
|
* @method setAngularVelocity
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} velocity
|
* @param {number} velocity
|
||||||
|
@ -610,7 +611,7 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current rotational velocity of the body. See `body.angularVelocity` for details.
|
* Gets the current rotational velocity of the body.
|
||||||
* @method getAngularVelocity
|
* @method getAngularVelocity
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @return {number} angular velocity
|
* @return {number} angular velocity
|
||||||
|
@ -620,7 +621,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current rotational speed of the body. See `body.angularSpeed` for details.
|
* Gets the current rotational speed of the body.
|
||||||
|
* Equivalent to the magnitude of its angular velocity.
|
||||||
* @method getAngularSpeed
|
* @method getAngularSpeed
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @return {number} angular speed
|
* @return {number} angular speed
|
||||||
|
@ -630,7 +632,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the current rotational speed of the body. See `body.angularSpeed` for details. Use this instead of setting `body.angularSpeed`.
|
* Sets the current rotational speed of the body.
|
||||||
|
* Direction is maintained. Affects body angular velocity.
|
||||||
* @method setAngularSpeed
|
* @method setAngularSpeed
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} speed
|
* @param {number} speed
|
||||||
|
@ -743,7 +746,8 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs a simulation step for the given `body`, including updating position and angle using Verlet integration.
|
* Performs an update by integrating the equations of motion on the `body`.
|
||||||
|
* This is applied every update by `Matter.Engine` automatically.
|
||||||
* @method update
|
* @method update
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} [deltaTime=16.666]
|
* @param {number} [deltaTime=16.666]
|
||||||
|
@ -815,7 +819,12 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Applies a force to a body from a given world-space position, including resulting torque.
|
* Applies a force to a body from a given world-space position for a _single update_, including resulting torque.
|
||||||
|
* The position must be specified. Using `body.position` results in zero torque.
|
||||||
|
*
|
||||||
|
* Forces create an acceleration that acts over time, so may need to be applied over multiple updates for the body to gain a visible momentum.
|
||||||
|
*
|
||||||
|
* See also `Body.setVelocity` and related methods which do not require any time for acceleration to reach the given velocity.
|
||||||
* @method applyForce
|
* @method applyForce
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {vector} position
|
* @param {vector} position
|
||||||
|
@ -904,12 +913,14 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Set by `Body.create`.
|
||||||
|
*
|
||||||
* A `String` denoting the type of object.
|
* A `String` denoting the type of object.
|
||||||
*
|
*
|
||||||
|
* @readOnly
|
||||||
* @property type
|
* @property type
|
||||||
* @type string
|
* @type string
|
||||||
* @default "body"
|
* @default "body"
|
||||||
* @readOnly
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -921,6 +932,8 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Use `Body.setParts` to set.
|
||||||
|
*
|
||||||
* An array of bodies that make up this body.
|
* An array of bodies that make up this body.
|
||||||
* The first body in the array must always be a self reference to the current body instance.
|
* The first body in the array must always be a self reference to the current body instance.
|
||||||
* All bodies in the `parts` array together form a single rigid compound body.
|
* All bodies in the `parts` array together form a single rigid compound body.
|
||||||
|
@ -928,6 +941,7 @@ var Axes = require('../geometry/Axes');
|
||||||
* Parts themselves should never be added to a `World`, only the parent body should be.
|
* Parts themselves should never be added to a `World`, only the parent body should be.
|
||||||
* Use `Body.setParts` when setting parts to ensure correct updates of all properties.
|
* Use `Body.setParts` when setting parts to ensure correct updates of all properties.
|
||||||
*
|
*
|
||||||
|
* @readOnly
|
||||||
* @property parts
|
* @property parts
|
||||||
* @type body[]
|
* @type body[]
|
||||||
*/
|
*/
|
||||||
|
@ -940,16 +954,18 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A self reference if the body is _not_ a part of another body.
|
* _Read only_. Updated by `Body.setParts`.
|
||||||
* Otherwise this is a reference to the body that this is a part of.
|
|
||||||
* See `body.parts`.
|
|
||||||
*
|
*
|
||||||
|
* A reference to the body that this is a part of. See `body.parts`.
|
||||||
|
* This is a self reference if the body is not a part of another body.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property parent
|
* @property parent
|
||||||
* @type body
|
* @type body
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` specifying the angle of the body, in radians.
|
* A `Number` specifying the angle of the body.
|
||||||
*
|
*
|
||||||
* @property angle
|
* @property angle
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -957,31 +973,41 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`.
|
||||||
|
*
|
||||||
* An array of `Vector` objects that specify the convex hull of the rigid body.
|
* An array of `Vector` objects that specify the convex hull of the rigid body.
|
||||||
* These should be provided about the origin `(0, 0)`. E.g.
|
* These should be provided about the origin `(0, 0)`. E.g.
|
||||||
*
|
*
|
||||||
* [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]
|
* `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]`
|
||||||
*
|
*
|
||||||
* When passed via `Body.create`, the vertices are translated relative to `body.position` (i.e. world-space, and constantly updated by `Body.update` during simulation).
|
* Vertices must always be convex, in clockwise order and must not contain any duplicate points.
|
||||||
* The `Vector` objects are also augmented with additional properties required for efficient collision detection.
|
|
||||||
*
|
*
|
||||||
* Other properties such as `inertia` and `bounds` are automatically calculated from the passed vertices (unless provided via `options`).
|
* Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`.
|
||||||
* Concave hulls are not currently supported. The module `Matter.Vertices` contains useful methods for working with vertices.
|
|
||||||
*
|
*
|
||||||
|
* When set the vertices are translated such that `body.position` is at the centre of mass.
|
||||||
|
* Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`.
|
||||||
|
*
|
||||||
|
* The module `Matter.Vertices` contains useful methods for working with vertices.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property vertices
|
* @property vertices
|
||||||
* @type vector[]
|
* @type vector[]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Use `Body.setPosition` to set.
|
||||||
|
*
|
||||||
* A `Vector` that specifies the current world-space position of the body.
|
* A `Vector` that specifies the current world-space position of the body.
|
||||||
*
|
*
|
||||||
|
* @readOnly
|
||||||
* @property position
|
* @property position
|
||||||
* @type vector
|
* @type vector
|
||||||
* @default { x: 0, y: 0 }
|
* @default { x: 0, y: 0 }
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Vector` that specifies the force to apply in the current step. It is zeroed after every `Body.update`. See also `Body.applyForce`.
|
* A `Vector` that accumulates the total force applied to the body for a single update.
|
||||||
|
* Force is zeroed after every `Body.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`.
|
||||||
*
|
*
|
||||||
* @property force
|
* @property force
|
||||||
* @type vector
|
* @type vector
|
||||||
|
@ -989,7 +1015,10 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that specifies the torque (turning force) to apply in the current step. It is zeroed after every `Body.update`.
|
* A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`.
|
||||||
|
* Torque is zeroed after every `Body.update`, so constant torques should be applied for every update they are needed.
|
||||||
|
*
|
||||||
|
* Torques are converted to acceleration on every update, which depends on body inertia and the engine update delta.
|
||||||
*
|
*
|
||||||
* @property torque
|
* @property torque
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -999,12 +1028,7 @@ var Axes = require('../geometry/Axes');
|
||||||
/**
|
/**
|
||||||
* _Read only_. Use `Body.setSpeed` to set.
|
* _Read only_. Use `Body.setSpeed` to set.
|
||||||
*
|
*
|
||||||
* The body's current linear speed in _unit distance_ per _unit time_.
|
* See `Body.getSpeed` for details.
|
||||||
*
|
|
||||||
* By default when rendering _1:1_ this is equivalent to
|
|
||||||
* _pixels_ per `Body.timeUnit` _milliseconds_.
|
|
||||||
*
|
|
||||||
* See `Body.timeUnit` for more details.
|
|
||||||
*
|
*
|
||||||
* Equivalent to the magnitude of `body.velocity` (always positive).
|
* Equivalent to the magnitude of `body.velocity` (always positive).
|
||||||
*
|
*
|
||||||
|
@ -1014,33 +1038,12 @@ var Axes = require('../geometry/Axes');
|
||||||
* @default 0
|
* @default 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* _Read only_. Use `Body.setAngularSpeed` to set.
|
|
||||||
*
|
|
||||||
* The body's current rotational speed in _radians_ per _unit time_.
|
|
||||||
*
|
|
||||||
* By default when rendering _1:1_ this is equivalent to
|
|
||||||
* _radians_ per `Body.timeUnit` _milliseconds_.
|
|
||||||
*
|
|
||||||
* See `Body.timeUnit` for more details.
|
|
||||||
*
|
|
||||||
* Equivalent to the magnitude of `body.angularVelocity` (always positive).
|
|
||||||
*
|
|
||||||
* @readOnly
|
|
||||||
* @property angularSpeed
|
|
||||||
* @type number
|
|
||||||
* @default 0
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _Read only_. Use `Body.setVelocity` to set.
|
* _Read only_. Use `Body.setVelocity` to set.
|
||||||
*
|
*
|
||||||
* The body's current linear velocity in _unit distance_ per _unit time_.
|
* See `Body.getVelocity` for details.
|
||||||
*
|
*
|
||||||
* By default when rendering _1:1_ this is equivalent to
|
* Equivalent to the magnitude of `body.angularVelocity` (always positive).
|
||||||
* _pixels_ per `Body.timeUnit` _milliseconds_.
|
|
||||||
*
|
|
||||||
* See `Body.timeUnit` for more details.
|
|
||||||
*
|
*
|
||||||
* @readOnly
|
* @readOnly
|
||||||
* @property velocity
|
* @property velocity
|
||||||
|
@ -1048,15 +1051,23 @@ var Axes = require('../geometry/Axes');
|
||||||
* @default { x: 0, y: 0 }
|
* @default { x: 0, y: 0 }
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* _Read only_. Use `Body.setAngularSpeed` to set.
|
||||||
|
*
|
||||||
|
* See `Body.getAngularSpeed` for details.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
|
* @property angularSpeed
|
||||||
|
* @type number
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* _Read only_. Use `Body.setAngularVelocity` to set.
|
* _Read only_. Use `Body.setAngularVelocity` to set.
|
||||||
*
|
*
|
||||||
* The body's current rotational velocity in _radians_ per _unit time_.
|
* See `Body.getAngularVelocity` for details.
|
||||||
*
|
*
|
||||||
* By default when rendering _1:1_ this is equivalent to
|
|
||||||
* _radians_ per `Body.timeUnit` _milliseconds_.
|
|
||||||
*
|
|
||||||
* See `Body.timeUnit` for more details.
|
|
||||||
*
|
*
|
||||||
* @readOnly
|
* @readOnly
|
||||||
* @property angularVelocity
|
* @property angularVelocity
|
||||||
|
@ -1065,9 +1076,11 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.
|
* _Read only_. Use `Body.setStatic` to set.
|
||||||
* If you need to set a body as static after its creation, you should use `Body.setStatic` as this requires more than just setting this flag.
|
|
||||||
*
|
*
|
||||||
|
* A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property isStatic
|
* @property isStatic
|
||||||
* @type boolean
|
* @type boolean
|
||||||
* @default false
|
* @default false
|
||||||
|
@ -1082,17 +1095,22 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.
|
* _Read only_. Use `Sleeping.set` to set.
|
||||||
* If you need to set a body as sleeping, you should use `Sleeping.set` as this requires more than just setting this flag.
|
|
||||||
*
|
*
|
||||||
|
* A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property isSleeping
|
* @property isSleeping
|
||||||
* @type boolean
|
* @type boolean
|
||||||
* @default false
|
* @default false
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that _measures_ the amount of movement a body currently has (a combination of `speed` and `angularSpeed`). It is read-only and always positive.
|
* _Read only_. Calculated during engine update only when sleeping is enabled.
|
||||||
* It is used and updated by the `Matter.Sleeping` module during simulation to decide if a body has come to rest.
|
*
|
||||||
|
* A `Number` that loosely measures the amount of movement a body currently has.
|
||||||
|
*
|
||||||
|
* Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`.
|
||||||
*
|
*
|
||||||
* @readOnly
|
* @readOnly
|
||||||
* @property motion
|
* @property motion
|
||||||
|
@ -1101,7 +1119,7 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the number of updates in which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).
|
* A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).
|
||||||
*
|
*
|
||||||
* @property sleepThreshold
|
* @property sleepThreshold
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -1109,44 +1127,58 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the density of the body, that is its mass per unit area.
|
* _Read only_. Use `Body.setDensity` to set.
|
||||||
* If you pass the density via `Body.create` the `mass` property is automatically calculated for you based on the size (area) of the object.
|
|
||||||
* This is generally preferable to simply setting mass and allows for more intuitive definition of materials (e.g. rock has a higher density than wood).
|
|
||||||
*
|
*
|
||||||
|
* A `Number` that defines the density of the body (mass per unit area).
|
||||||
|
*
|
||||||
|
* Mass will also be updated when set.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property density
|
* @property density
|
||||||
* @type number
|
* @type number
|
||||||
* @default 0.001
|
* @default 0.001
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the mass of the body, although it may be more appropriate to specify the `density` property instead.
|
* _Read only_. Use `Body.setMass` to set.
|
||||||
* If you modify this value, you must also modify the `body.inverseMass` property (`1 / mass`).
|
|
||||||
*
|
*
|
||||||
|
* A `Number` that defines the mass of the body.
|
||||||
|
*
|
||||||
|
* Density will also be updated when set.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property mass
|
* @property mass
|
||||||
* @type number
|
* @type number
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the inverse mass of the body (`1 / mass`).
|
* _Read only_. Use `Body.setMass` to set.
|
||||||
* If you modify this value, you must also modify the `body.mass` property.
|
|
||||||
*
|
*
|
||||||
|
* A `Number` that defines the inverse mass of the body (`1 / mass`).
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property inverseMass
|
* @property inverseMass
|
||||||
* @type number
|
* @type number
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the moment of inertia (i.e. second moment of area) of the body.
|
* _Read only_. Automatically calculated when vertices, mass or density are set.
|
||||||
* It is automatically calculated from the given convex hull (`vertices` array) and density in `Body.create`.
|
|
||||||
* If you modify this value, you must also modify the `body.inverseInertia` property (`1 / inertia`).
|
|
||||||
*
|
*
|
||||||
|
* A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions.
|
||||||
|
*
|
||||||
|
* Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property inertia
|
* @property inertia
|
||||||
* @type number
|
* @type number
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).
|
* _Read only_. Automatically calculated when vertices, mass or density are set.
|
||||||
* If you modify this value, you must also modify the `body.inertia` property.
|
|
||||||
*
|
*
|
||||||
|
* A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property inverseInertia
|
* @property inverseInertia
|
||||||
* @type number
|
* @type number
|
||||||
*/
|
*/
|
||||||
|
@ -1157,7 +1189,7 @@ var Axes = require('../geometry/Axes');
|
||||||
* A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.
|
* A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.
|
||||||
* Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:
|
* Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:
|
||||||
*
|
*
|
||||||
* Math.max(bodyA.restitution, bodyB.restitution)
|
* `Math.max(bodyA.restitution, bodyB.restitution)`
|
||||||
*
|
*
|
||||||
* @property restitution
|
* @property restitution
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -1174,7 +1206,7 @@ var Axes = require('../geometry/Axes');
|
||||||
* The engine uses a Coulomb friction model including static and kinetic friction.
|
* The engine uses a Coulomb friction model including static and kinetic friction.
|
||||||
* Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:
|
* Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:
|
||||||
*
|
*
|
||||||
* Math.min(bodyA.friction, bodyB.friction)
|
* `Math.min(bodyA.friction, bodyB.friction)`
|
||||||
*
|
*
|
||||||
* @property friction
|
* @property friction
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -1259,9 +1291,11 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that specifies a tolerance on how far a body is allowed to 'sink' or rotate into other bodies.
|
* A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies.
|
||||||
* Avoid changing this value unless you understand the purpose of `slop` in physics engines.
|
*
|
||||||
* The default should generally suffice, although very large bodies may require larger values for stable stacking.
|
* This is required for proper collision response, including friction and restitution effects.
|
||||||
|
*
|
||||||
|
* The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale.
|
||||||
*
|
*
|
||||||
* @property slop
|
* @property slop
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -1269,7 +1303,7 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that allows per-body time scaling, e.g. a force-field where bodies inside are in slow-motion, while others are at full speed.
|
* A `Number` that specifies per-body time scaling.
|
||||||
*
|
*
|
||||||
* @property timeScale
|
* @property timeScale
|
||||||
* @type number
|
* @type number
|
||||||
|
@ -1277,13 +1311,15 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Updated during engine update.
|
||||||
|
*
|
||||||
* A `Number` that records the last delta time value used to update this body.
|
* A `Number` that records the last delta time value used to update this body.
|
||||||
* This is automatically updated by the engine inside of `Body.update`.
|
* Used to calculate speed and velocity.
|
||||||
*
|
*
|
||||||
* @readOnly
|
* @readOnly
|
||||||
* @property deltaTime
|
* @property deltaTime
|
||||||
* @type number
|
* @type number
|
||||||
* @default null
|
* @default 1000 / 60
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1383,17 +1419,23 @@ var Axes = require('../geometry/Axes');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* _Read only_. Calculated automatically when vertices are set.
|
||||||
|
*
|
||||||
* An array of unique axis vectors (edge normals) used for collision detection.
|
* An array of unique axis vectors (edge normals) used for collision detection.
|
||||||
* These are automatically calculated from the given convex hull (`vertices` array) in `Body.create`.
|
* These are automatically calculated when vertices are set.
|
||||||
* They are constantly updated by `Body.update` during the simulation.
|
* They are constantly updated by `Body.update` during the simulation.
|
||||||
*
|
*
|
||||||
|
* @readOnly
|
||||||
* @property axes
|
* @property axes
|
||||||
* @type vector[]
|
* @type vector[]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Number` that _measures_ the area of the body's convex hull, calculated at creation by `Body.create`.
|
* _Read only_. Calculated automatically when vertices are set.
|
||||||
*
|
*
|
||||||
|
* A `Number` that measures the area of the body's convex hull.
|
||||||
|
*
|
||||||
|
* @readOnly
|
||||||
* @property area
|
* @property area
|
||||||
* @type string
|
* @type string
|
||||||
* @default
|
* @default
|
||||||
|
@ -1401,7 +1443,7 @@ var Axes = require('../geometry/Axes');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `Bounds` object that defines the AABB region for the body.
|
* A `Bounds` object that defines the AABB region for the body.
|
||||||
* It is automatically calculated from the given convex hull (`vertices` array) in `Body.create` and constantly updated by `Body.update` during simulation.
|
* It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation.
|
||||||
*
|
*
|
||||||
* @property bounds
|
* @property bounds
|
||||||
* @type bounds
|
* @type bounds
|
||||||
|
|
Loading…
Reference in a new issue