routing link crossover violation added

This commit is contained in:
2026-05-29 23:47:26 +08:00
parent 80d7514740
commit 2d9b2b0983
5 changed files with 285 additions and 2 deletions
+9 -1
View File
@@ -5181,13 +5181,21 @@
style: view.style,
data: { route }
};
const nodeMap = Object.fromEntries(activePage.nodes.map(node => [node.id, node]));
const conflict = findSameTypeRouteCrossing(candidate, activePage.edges, nodeMap, technologyManifest);
if (conflict) {
const source = nodeMap[conflict.conflictEdge.source]?.data?.componentDisplayName || conflict.conflictEdge.source;
const target = nodeMap[conflict.conflictEdge.target]?.data?.componentDisplayName || conflict.conflictEdge.target;
addLog(`Connection rejected: ${route.xsection} route crosses ${source} to ${target}.`);
return;
}
setPages(prev => prev.map(p => (
p.id === activePageId
? { ...p, edges: addEdge(candidate, p.edges) }
: p
)));
addLog(`Connected ${connection.sourceHandle} to ${connection.targetHandle}.`);
}, [activePageId, activePage, rulerMode, currentLinkRoute, addLog]);
}, [activePageId, activePage, rulerMode, currentLinkRoute, technologyManifest, addLog]);
const handleRouteEdgeMouseDown = useCallback((event) => {
if (rulerMode) return false;