0
0
Fork 0
mirror of https://github.com/liabru/matter-js.git synced 2025-01-31 18:14:55 -05:00

Check duplicate before adding objects (Composite.addXXXX)

Cause some problem such as applying gravity twice.
This commit is contained in:
Wtm 2016-06-05 00:39:35 +08:00
parent faf534ad1f
commit 49b665cfc4

View file

@ -159,6 +159,11 @@ var Body = require('./Body');
* @return {composite} The original compositeA with the objects from compositeB added
*/
Composite.addComposite = function(compositeA, compositeB) {
if (compositeA.composites.find(function (compos) {
return compos.id == compositeB.id;
})) {
return;
}
compositeA.composites.push(compositeB);
compositeB.parent = compositeA;
Composite.setModified(compositeA, true, true, false);
@ -213,6 +218,11 @@ var Body = require('./Body');
* @return {composite} The original composite with the body added
*/
Composite.addBody = function(composite, body) {
if (composite.bodies.find(function (bodyB) {
return bodyB.id == body.id;
})) {
return;
}
composite.bodies.push(body);
Composite.setModified(composite, true, true, false);
return composite;
@ -266,6 +276,11 @@ var Body = require('./Body');
* @return {composite} The original composite with the constraint added
*/
Composite.addConstraint = function(composite, constraint) {
if (composite.constraints.find(function (constraintB) {
return constraintB.id == constraint.id;
})) {
return;
}
composite.constraints.push(constraint);
Composite.setModified(composite, true, true, false);
return composite;