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

@@ -23,6 +23,7 @@ export const ConcernementsStore = defineStore({
allBesoinsById: {},
allSuperpositions: [],
allSuperpositions_bycids: {},
allSuperpositions_clustered: [],
allMapItems_byid: {},
allProximites: [],
opened_concernement: false,
@@ -173,8 +174,7 @@ export const ConcernementsStore = defineStore({
this.concernements.push(concernement);
this.concernementsByID[concernement.id] = concernement;
});
}); // end of concernements loop
console.log('temp_allSuperpositions', temp_allSuperpositions);
// cleaning superpositions, removing all incomplète onces
@@ -185,47 +185,59 @@ export const ConcernementsStore = defineStore({
this.concernementsByID[s[1].cid].has_superpositions = true;
}
});
console.log('this.allSuperpositions', this.allSuperpositions);
// Handle multiple superpositions accross two concernements
for(let superposition of this.allSuperpositions){
let superposition_couple_id = `${superposition[0].cid}-${superposition[1].cid}`;
let superposition_id = `${superposition[0].cid}_${superposition[0].eid}__${superposition[1].cid}_${superposition[1].eid}`
// record allSuperpositions_bycids
if (!this.allSuperpositions_bycids[superposition_couple_id]) {
this.allSuperpositions_bycids[superposition_couple_id] = {};
}
this.allSuperpositions_bycids[superposition_couple_id][superposition_id] = superposition;
// record allSuperpositions_bycid
for (let i = 0; i < 2; i++) {
// i is the current concernement, j is the target
let j = i === 0 ? 1 : 0;
// if (!this.allSuperpositions_bycid[superposition[i].cid]) {
// this.allSuperpositions_bycid[superposition[i].cid] = [];
// }
if(this.concernementsByID[superposition[i].cid]){
if (!this.concernementsByID[superposition[i].cid].superpositions[superposition_couple_id]) {
this.concernementsByID[superposition[i].cid].superpositions[superposition_couple_id] = {};
// get superpositions by cluster
for(let superpos_to_record of this.allSuperpositions){
let recorded = false;
// console.log('-- -- --');
// console.log(`superpos_to_record : ${superpos_to_record[0].cid}-${superpos_to_record[0].eid}, ${superpos_to_record[1].cid}-${superpos_to_record[1].eid}`);
// loop through alredy recorded clusters
for(let [cluster_index, superpo_cluster] of this.allSuperpositions_clustered.entries()){
// console.log('cluster_index', cluster_index);
// for each cluster loop throug each superposition
in_cluster_loop:{
for(let s of superpo_cluster){
// console.log(`s : ${s.cid}-${s.eid}`);
// loop through each cid_eid couple of superpo to be recorded
for(let i = 0; i <= 1; i++){
// if one couple already recorded in the cluster, add the other one to the same cluster
if (superpos_to_record[i].cid === s.cid && superpos_to_record[i].eid === s.eid){
// console.log('-- recorded');
let j = i === 0 ? 1 : 0;
// add the right item to the cluster
this.allSuperpositions_clustered[cluster_index].push(superpos_to_record[j]);
// record the superposition on the concernement BY cluster index
// console.log(`superpos_to_record[j].cid:${superpos_to_record[j].cid}`);
// console.log('concernement', this.concernementsByID[superpos_to_record[j].cid]);
// create array if not already exists
if(typeof this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] === 'undefined'){
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] = [superpos_to_record];
}else{
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index].push(superpos_to_record);
}
recorded = true;
break in_cluster_loop;
}
}
}
// let s = {
// eid: superposition[i].eid,
// target_cid: superposition[j].cid,
// target_eid: superposition[j].eid,
// };
// this.allSuperpositions_bycid[superposition[i].cid].push(s)
// this.concernementsByID[superposition[i].cid].superpositions.push(s);
this.concernementsByID[superposition[i].cid].superpositions[superposition_couple_id][superposition_id] = superposition;
}
}
if(!recorded){
// console.log('-- not recorded');
// create cluster and fill it it with first couple
this.allSuperpositions_clustered.push(superpos_to_record);
// record superposition on each concernement of each couple member BY cluster index
for( let i=0; i <= 1; i++){
this.concernementsByID[superpos_to_record[i].cid].superpositions[this.allSuperpositions_clustered.length-1] = [superpos_to_record];
// console.log(`concernement ${superpos_to_record[i].cid} superposition by cluster index`,this.concernementsByID[superpos_to_record[i].cid].superpositions);
}
}
}
console.log('this.allSuperpositions_bycids', this.allSuperpositions_bycids);
// console.log('this.allSuperpositions_bycid', this.allSuperpositions_bycid);
console.log('this.allSuperpositions_clustered', this.allSuperpositions_clustered);
this.concernements_loaded = true;
})