refactored superposition constraint point tweening
This commit is contained in:
@@ -1097,8 +1097,11 @@ export default {
|
||||
this.superpositions_constraints.push(c);
|
||||
Matter.Composite.add(this.world, c);
|
||||
// keep a link the constraint into the concernement object (useful for tweening the constraint pointA & pointB in concernementMapItem)
|
||||
concernementA.superposition_constraints[c.id] = c;
|
||||
concernementB.superposition_constraints[c.id] = c;
|
||||
// TODO this two lines make the all thing very slow
|
||||
// concernementA.superposition_constraints[c.id] = c;
|
||||
// concernementB.superposition_constraints[c.id] = c;
|
||||
concernementA.superposition_constraints_id.push(c.id);
|
||||
concernementB.superposition_constraints_id.push(c.id);
|
||||
// record all superposed concernements for each concernement
|
||||
if (concernementA.superposed_concernements_id.indexOf(concernementB.id) < 0) {
|
||||
concernementA.superposed_concernements_id.push(concernementB.id);
|
||||
@@ -1113,8 +1116,22 @@ export default {
|
||||
clearSuperpositionsMatterConstraints(){
|
||||
console.log('clearSuperpositionsMatterConstraints', this.superpositions_constraints);
|
||||
for(let constraint of this.superpositions_constraints){
|
||||
delete constraint.concernementA.superposition_constraints[constraint.id];
|
||||
delete constraint.concernementB.superposition_constraints[constraint.id];
|
||||
|
||||
// Delete superposition constraints recorded in concernement object
|
||||
// delete constraint.concernementA.superposition_constraints[constraint.id];
|
||||
// delete constraint.concernementB.superposition_constraints[constraint.id];
|
||||
let keysA = constraint.concernementA.superposition_constraints_id;
|
||||
keysA.forEach(i => {
|
||||
if(constraint.concernementA.superposition_constraints_id[i] === constraint.id) {
|
||||
delete constraint.concernementA.superposition_constraints_id[i];
|
||||
}
|
||||
});
|
||||
let keysB = constraint.concernementB.superposition_constraints_id;
|
||||
keysB.forEach(i => {
|
||||
if(constraint.concernementB.superposition_constraints_id[i] === constraint.id) {
|
||||
delete constraint.concernementB.superposition_constraints_id[i];
|
||||
}
|
||||
});
|
||||
Matter.Composite.remove(this.world, constraint, true);
|
||||
}
|
||||
this.superpositions_constraints = [];
|
||||
|
||||
Reference in New Issue
Block a user