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:
parent
faf534ad1f
commit
49b665cfc4
1 changed files with 15 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue