mirror of
https://github.com/liabru/matter-js.git
synced 2025-02-07 19:06:26 -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
|
* @return {composite} The original compositeA with the objects from compositeB added
|
||||||
*/
|
*/
|
||||||
Composite.addComposite = function(compositeA, compositeB) {
|
Composite.addComposite = function(compositeA, compositeB) {
|
||||||
|
if (compositeA.composites.find(function (compos) {
|
||||||
|
return compos.id == compositeB.id;
|
||||||
|
})) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
compositeA.composites.push(compositeB);
|
compositeA.composites.push(compositeB);
|
||||||
compositeB.parent = compositeA;
|
compositeB.parent = compositeA;
|
||||||
Composite.setModified(compositeA, true, true, false);
|
Composite.setModified(compositeA, true, true, false);
|
||||||
|
@ -213,6 +218,11 @@ var Body = require('./Body');
|
||||||
* @return {composite} The original composite with the body added
|
* @return {composite} The original composite with the body added
|
||||||
*/
|
*/
|
||||||
Composite.addBody = function(composite, body) {
|
Composite.addBody = function(composite, body) {
|
||||||
|
if (composite.bodies.find(function (bodyB) {
|
||||||
|
return bodyB.id == body.id;
|
||||||
|
})) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
composite.bodies.push(body);
|
composite.bodies.push(body);
|
||||||
Composite.setModified(composite, true, true, false);
|
Composite.setModified(composite, true, true, false);
|
||||||
return composite;
|
return composite;
|
||||||
|
@ -266,6 +276,11 @@ var Body = require('./Body');
|
||||||
* @return {composite} The original composite with the constraint added
|
* @return {composite} The original composite with the constraint added
|
||||||
*/
|
*/
|
||||||
Composite.addConstraint = function(composite, constraint) {
|
Composite.addConstraint = function(composite, constraint) {
|
||||||
|
if (composite.constraints.find(function (constraintB) {
|
||||||
|
return constraintB.id == constraint.id;
|
||||||
|
})) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
composite.constraints.push(constraint);
|
composite.constraints.push(constraint);
|
||||||
Composite.setModified(composite, true, true, false);
|
Composite.setModified(composite, true, true, false);
|
||||||
return composite;
|
return composite;
|
||||||
|
|
Loading…
Add table
Reference in a new issue