third version of superpositions is almost done

This commit is contained in:
2023-11-10 22:15:51 +01:00
parent 9b70d8071b
commit 9e180f59d8
7 changed files with 173 additions and 188 deletions

View File

@@ -63,7 +63,8 @@ export default {
'opened_entite_id',
'opened_recit',
'allSuperpositions',
'allSuperpositions_bycids'
// 'allSuperpositions_bycids',
'allSuperpositions_clustered'
]),
...mapState(CommonStore,['map_item_ray',
'hover_elmt',
@@ -1147,25 +1148,25 @@ export default {
},
async setSuperpositionsMatterConstraints(){
await nextTick(); // wait for dom to be upadted before applying constraint
console.log('setSuperpositionsMatterConstraints this.allSuperpositions', this.allSuperpositions);
// console.log('setSuperpositionsMatterConstraints this.allSuperpositions_clustered', this.allSuperpositions_clustered);
// loop through all supperposition couple
for(let [couple_id, superpositions] of Object.entries(this.allSuperpositions_bycids)){
// if couple has only one superposition, use regular mapItems
// let superpositions_ids = Object.keys(superpositions);
let i = 0;
for(let [superposition_id, superposition] of Object.entries(superpositions)){
i++;
let concernementA = this.concernementsByID[superposition[0].cid];
for(let [cluster_index, cluster] of Object.entries(this.allSuperpositions_clustered)){
for(let [i, cid_eid_A] of cluster.entries()){
// console.log(`i:${i}, cid_eid_A cid:${cid_eid_A.cid}, eid:${cid_eid_A.eid}`);
let cid_eid_B = i === cluster.length -1 ? cluster[0] : cluster[i+1];
// console.log(`i:${i}, cid_eid_B cid:${cid_eid_B.cid}, eid:${cid_eid_B.eid}`);
let concernementA = this.concernementsByID[cid_eid_A.cid];
// console.log('concernementA', concernementA);
let concernementB = this.concernementsByID[superposition[1].cid];
let concernementB = this.concernementsByID[cid_eid_B.cid];
// console.log('concernementB', concernementB);
// console.log('superposition', superposition_id, superposition);
let mapitemA_id = `${superposition[0].cid}___${superposition_id}`
let mapitemB_id = `${superposition[1].cid}___${superposition_id}`
let mapitemA_id = `${cid_eid_A.cid}___${cluster_index}`
let mapitemB_id = `${cid_eid_B.cid}___${cluster_index}`
// console.log(`mapitemA_id: ${mapitemA_id}, mapitemB_id: ${mapitemB_id}`);
// get the concernement matter bodies with id
let bodyA = Matter.Composite.get(this.world, mapitemA_id, 'body'); // matter body id is the same as mapitem_id
@@ -1175,7 +1176,7 @@ export default {
// get the entite coordinates inside the concernement body
let pointA = null;
for(let entiteA of concernementA.revisions_byid[concernementA.active_revision].entites){
if (entiteA.entite && entiteA.entite.id === superposition[0].eid && entiteA.display) {
if (entiteA.entite && entiteA.entite.id === cid_eid_A.eid && entiteA.display) {
// console.log('entiteA', entiteA);
pointA = Matter.Vector.create(entiteA.display.pos.x, entiteA.display.pos.y);
break;
@@ -1183,7 +1184,7 @@ export default {
}
let pointB = null;
for(let entiteB of concernementB.revisions_byid[concernementB.active_revision].entites){
if (entiteB.entite && entiteB.entite.id === superposition[1].eid && entiteB.display) {
if (entiteB.entite && entiteB.entite.id === cid_eid_B.eid && entiteB.display) {
// console.log('entiteB', entiteB);
pointB = Matter.Vector.create(entiteB.display.pos.x, entiteB.display.pos.y);
break;