Split any wire that is crossed by a wire endpoint or component pin.
(self)
| 1021 | # ── wire splitting ──────────────────────────────────────────────────────── |
| 1022 | |
| 1023 | def _split_through_wires(self) -> None: |
| 1024 | """Split any wire that is crossed by a wire endpoint or component pin.""" |
| 1025 | changed = True |
| 1026 | while changed: |
| 1027 | changed = False |
| 1028 | wires = [i for i in self.items() if isinstance(i, WireItem)] |
| 1029 | comps = [i for i in self.items() if isinstance(i, ComponentItem)] |
| 1030 | for wire in wires: |
| 1031 | pt = self._interior_tap(wire, wires, comps) |
| 1032 | if pt is not None: |
| 1033 | self._split_wire_at(wire, pt) |
| 1034 | changed = True |
| 1035 | break # restart after topology change |
| 1036 | |
| 1037 | def _interior_tap(self, wire, wires, comps): |
| 1038 | """Return the first interior tap position on wire, or None.""" |
no test coverage detected