mirror of
https://github.com/liabru/matter-js.git
synced 2024-12-26 13:49:01 -05:00
refactor Resolver.solvePosition damping argument
This commit is contained in:
parent
ee7b00897d
commit
cce3152664
2 changed files with 6 additions and 4 deletions
|
@ -50,9 +50,9 @@ var Bounds = require('../geometry/Bounds');
|
||||||
* @method solvePosition
|
* @method solvePosition
|
||||||
* @param {pair[]} pairs
|
* @param {pair[]} pairs
|
||||||
* @param {number} delta
|
* @param {number} delta
|
||||||
* @param {number} positionIterations
|
* @param {number} [damping=1]
|
||||||
*/
|
*/
|
||||||
Resolver.solvePosition = function(pairs, delta, positionIterations) {
|
Resolver.solvePosition = function(pairs, delta, damping) {
|
||||||
var i,
|
var i,
|
||||||
pair,
|
pair,
|
||||||
collision,
|
collision,
|
||||||
|
@ -61,7 +61,7 @@ var Bounds = require('../geometry/Bounds');
|
||||||
normal,
|
normal,
|
||||||
contactShare,
|
contactShare,
|
||||||
positionImpulse,
|
positionImpulse,
|
||||||
positionDampen = Resolver._positionDampen * Common.clamp(20 / positionIterations, 0, 1),
|
positionDampen = Resolver._positionDampen * (damping || 1),
|
||||||
slopDampen = Common.clamp(delta / Common._timeUnit, 0, 1),
|
slopDampen = Common.clamp(delta / Common._timeUnit, 0, 1),
|
||||||
pairsLength = pairs.length;
|
pairsLength = pairs.length;
|
||||||
|
|
||||||
|
|
|
@ -147,9 +147,11 @@ var Body = require('../body/Body');
|
||||||
Sleeping.afterCollisions(pairs.list);
|
Sleeping.afterCollisions(pairs.list);
|
||||||
|
|
||||||
// iteratively resolve position between collisions
|
// iteratively resolve position between collisions
|
||||||
|
var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1);
|
||||||
|
|
||||||
Resolver.preSolvePosition(pairs.list);
|
Resolver.preSolvePosition(pairs.list);
|
||||||
for (i = 0; i < engine.positionIterations; i++) {
|
for (i = 0; i < engine.positionIterations; i++) {
|
||||||
Resolver.solvePosition(pairs.list, delta, engine.positionIterations);
|
Resolver.solvePosition(pairs.list, delta, positionDamping);
|
||||||
}
|
}
|
||||||
Resolver.postSolvePosition(allBodies);
|
Resolver.postSolvePosition(allBodies);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue