From c21cb29401489d8382a6d390def3adb4e01a7c19 Mon Sep 17 00:00:00 2001 From: znetsixe Date: Wed, 8 Apr 2026 12:04:10 +0200 Subject: [PATCH] Fix branch semantics: only horizontal extends, vertical + diagonal = new track MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit → ← = extend same line (horizontal tracks) ↑ ↓ = new track (parallel line above/below) ↘ ↗ = new track (diagonal fork) Co-Authored-By: Claude Opus 4.6 (1M context) --- resources/js/Components/MetroMap/MetroCanvas.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/js/Components/MetroMap/MetroCanvas.vue b/resources/js/Components/MetroMap/MetroCanvas.vue index da9db20..7c9ed5d 100644 --- a/resources/js/Components/MetroMap/MetroCanvas.vue +++ b/resources/js/Components/MetroMap/MetroCanvas.vue @@ -585,7 +585,7 @@ const renderBranchHandles = (nodeGroup, node, allNodes) => { .attr('font-family', "'VT323', monospace") .attr('font-size', '12px') .attr('opacity', 0.5) - .text(occupied ? 'interchange' : ([0, 90, 180, 270].includes(b.deg) ? 'extend' : 'fork')) + .text(occupied ? 'interchange' : ([0, 180].includes(b.deg) ? 'extend' : 'new track')) }) .on('mouseleave', () => { handleGroup.selectAll('.ghost-preview').remove() @@ -595,7 +595,7 @@ const renderBranchHandles = (nodeGroup, node, allNodes) => { emit('create-node', { x: targetX, y: targetY, - lineId: [0, 90, 180, 270].includes(b.deg) ? node.lineId : null, // cardinal = same line, diagonal = new track + lineId: [0, 180].includes(b.deg) ? node.lineId : null, // horizontal = same line, vertical + diagonal = new track afterNodeId: node.id, branchAngle: b.deg, parentNodeId: currentDimensionData.value?.parentNodeId ?? null,