mirror of
https://github.com/liabru/matter-js.git
synced 2024-12-17 12:42:17 -05:00
fix inertia change in Body.setMass, closes #378
This commit is contained in:
parent
894c1efeee
commit
f7d18779be
1 changed files with 6 additions and 2 deletions
|
@ -275,19 +275,23 @@ var Axes = require('../geometry/Axes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the mass of the body. Inverse mass and density are automatically updated to reflect the change.
|
* Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.
|
||||||
* @method setMass
|
* @method setMass
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} mass
|
* @param {number} mass
|
||||||
*/
|
*/
|
||||||
Body.setMass = function(body, mass) {
|
Body.setMass = function(body, mass) {
|
||||||
|
var moment = body.inertia / (body.mass / 6);
|
||||||
|
body.inertia = moment * (mass / 6);
|
||||||
|
body.inverseInertia = 1 / body.inertia;
|
||||||
|
|
||||||
body.mass = mass;
|
body.mass = mass;
|
||||||
body.inverseMass = 1 / body.mass;
|
body.inverseMass = 1 / body.mass;
|
||||||
body.density = body.mass / body.area;
|
body.density = body.mass / body.area;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the density of the body. Mass is automatically updated to reflect the change.
|
* Sets the density of the body. Mass and inertia are automatically updated to reflect the change.
|
||||||
* @method setDensity
|
* @method setDensity
|
||||||
* @param {body} body
|
* @param {body} body
|
||||||
* @param {number} density
|
* @param {number} density
|
||||||
|
|
Loading…
Reference in a new issue