|
|
|
@ -269,7 +269,6 @@ function checkEntreCroisement(logiqueId) {
|
|
|
|
|
let logique = findLogique(logiqueId);
|
|
|
|
|
if (logique.id1 != null && logique.id2 != null) {
|
|
|
|
|
if (stage.findOne("#" + logique.id1).points()[1] > stage.findOne("#" + logique.id2).points()[1]) {
|
|
|
|
|
|
|
|
|
|
if (getSwitchFromLine(logique.id1) != null && getSwitchFromLine(logique.id2) != null) {
|
|
|
|
|
let switch1 = getSwitchFromLine(logique.id1).id;
|
|
|
|
|
let switch2 = getSwitchFromLine(logique.id2).id;
|
|
|
|
@ -444,6 +443,66 @@ function isLineCollapsing() {
|
|
|
|
|
return isCollapsing;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function invertLine() {
|
|
|
|
|
logiques.forEach(function (logique) {
|
|
|
|
|
if (logique.type !== "inv") {
|
|
|
|
|
var distance1;
|
|
|
|
|
var distance2;
|
|
|
|
|
if (getLogiqueFromLine(logique.id1) === null)
|
|
|
|
|
distance1 = getSwitchFromLine(logique.id1).y;
|
|
|
|
|
else distance1 = getLogiqueFromLine(logique.id1).y;
|
|
|
|
|
if (getLogiqueFromLine(logique.id2) === null)
|
|
|
|
|
distance2 = getSwitchFromLine(logique.id2).y;
|
|
|
|
|
else distance2 = getLogiqueFromLine(logique.id2).y;
|
|
|
|
|
if (distance2 < distance1) {
|
|
|
|
|
console.log("croisement pour " + logique.name + " " + logique.type);
|
|
|
|
|
|
|
|
|
|
if (getLogiqueFromLine(logique.id1) === null && getLogiqueFromLine(logique.id2) === null) {
|
|
|
|
|
let switch1Id = getSwitchFromLine(logique.id1).id;
|
|
|
|
|
let switch2Id = getSwitchFromLine(logique.id2).id;
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
createLink(stage.findOne("#" + switch2Id), logique);
|
|
|
|
|
createLink(stage.findOne("#" + switch1Id), logique);
|
|
|
|
|
} else if (getLogiqueFromLine(logique.id1) === null && getLogiqueFromLine(logique.id2) !== null) {
|
|
|
|
|
let switch1Id = getSwitchFromLine(logique.id1).id;
|
|
|
|
|
let logique2 = getLogiqueFromLine(logique.id2);
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
createLink(stage.findOne("#" + switch1Id), logique);
|
|
|
|
|
createLink(logique2, logique);
|
|
|
|
|
} else if (getLogiqueFromLine(logique.id1) !== null && getLogiqueFromLine(logique.id2) === null) {
|
|
|
|
|
let switch2Id = getSwitchFromLine(logique.id2).id;
|
|
|
|
|
let logique1 = getLogiqueFromLine(logique.id1);
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
createLink(logique1, logique);
|
|
|
|
|
createLink(stage.findOne("#" + switch2Id), logique);
|
|
|
|
|
} else if (getLogiqueFromLine(logique.id1) !== null && getLogiqueFromLine(logique.id2) !== null) {
|
|
|
|
|
let logique1 = getLogiqueFromLine(logique.id1);
|
|
|
|
|
let logique2 = getLogiqueFromLine(logique.id2);
|
|
|
|
|
removeLine(logique.id1);
|
|
|
|
|
removeLine(logique.id2);
|
|
|
|
|
logique.id1 = null;
|
|
|
|
|
logique.id2 = null;
|
|
|
|
|
createLink(logique1, logique);
|
|
|
|
|
createLink(logique2, logique);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getLogiqueByLine(idLine) {
|
|
|
|
|
var logique = null;
|
|
|
|
|
logiques.forEach(function (element) {
|
|
|
|
|