|
@@ -50,8 +50,17 @@ this is the working manual.
|
|
|
## Layout & frame algorithm (ui.html)
|
|
## Layout & frame algorithm (ui.html)
|
|
|
|
|
|
|
|
- Geometry anchors are hard-coded in **three places that must stay in
|
|
- Geometry anchors are hard-coded in **three places that must stay in
|
|
|
- sync**: `tgPos` (rows y=74/386), `tgCablePath` (cable targets 210/266/290),
|
|
|
|
|
|
|
+ sync**: `tgPos` (rows y=74/386), `tgCablePath` (cable targets 210/266/290;
|
|
|
|
|
+ row-1 fabric = S-curve in the 346..386 corridor so the port approach is
|
|
|
|
|
+ vertical; `swSvg` ib ports 4+4 across top/bottom edges),
|
|
|
`swSvg`/`fanSvg` (boxes 210/290, fan cy=318), legend 526, `TG_H` 540.
|
|
`swSvg`/`fanSvg` (boxes 210/290, fan cy=318), legend 526, `TG_H` 540.
|
|
|
|
|
+ **Cable mode** (legend toggle `data-topobus`, `state.topoBus`, persisted
|
|
|
|
|
+ `sm121-topobus`, folded into the rebuild sig): *direct* = bezier runs;
|
|
|
|
|
+ *bus + bridges* = `tgCablePathBus` — row-1 Manhattan runs (200g lane
|
|
|
|
|
+ y=366, 10g lane y=278; 10g detours around the fabric box via x=350/710)
|
|
|
|
|
+ with `bridgesSvg` hop arcs (semicircle over the 200g lane) where a 10g
|
|
|
|
|
+ vertical strictly crosses it — detour devices turn on the lane (a T), so
|
|
|
|
|
+ no hop. Row 0 and DAC are unchanged in both modes.
|
|
|
- Frames: clusters with **identical node sets merge into one rect** with
|
|
- Frames: clusters with **identical node sets merge into one rect** with
|
|
|
side-by-side chips (kills doubled frames + mutual-containment depth
|
|
side-by-side chips (kills doubled frames + mutual-containment depth
|
|
|
inflation). Pads grow with region rank Δ = regionMaxDepth − depth:
|
|
inflation). Pads grow with region rank Δ = regionMaxDepth − depth:
|