Mikolaj Wielgus
|
06150f5167
|
autorouter: don't cache nodes in `Selection`
This solves the problem of having to use stateful deserialization.
|
2024-05-23 20:00:43 +02:00 |
Mikolaj Wielgus
|
fb501ac072
|
autorouter: encapsulate command history in a `History` object
|
2024-05-22 01:12:55 +02:00 |
Mikolaj Wielgus
|
f03545124f
|
autorouter: keep track of clicked pins
Pin names provide us stable references that we can use to replay actions
later. We'll use this information to serialize the selection.
|
2024-05-19 04:37:26 +02:00 |
Mikolaj Wielgus
|
4a4f18f558
|
egui,autorouter: implement undo/redo in GUI
|
2024-05-15 03:40:48 +02:00 |
Mikolaj Wielgus
|
1c09483873
|
autorouter: implement simple undo (untested, not in GUI yet)
|
2024-05-14 14:22:47 +02:00 |
Mikolaj Wielgus
|
4c6fa0e5d3
|
layout: remove concepts of connectivity, bands, and continents for now
We'll use `UnionFind` where needed for now.
|
2024-05-13 18:43:42 +02:00 |
Mikolaj Wielgus
|
7bcb3926d4
|
autorouter: put autorouter in new `Invoker` object for Command pattern
|
2024-05-13 03:20:57 +02:00 |
Mikolaj Wielgus
|
d9ff08477c
|
autorouter: encapsulate selection in `Selection` object
Just a thin wrapper over `HashSet` for now, but will contain more
complicated logic later.
|
2024-05-13 03:20:47 +02:00 |
Mikolaj Wielgus
|
f893f73cd8
|
autorouter: autoroute only selected
|
2024-05-12 20:29:07 +02:00 |
Mikolaj Wielgus
|
a6fb1157e3
|
egui,tests: fix compilation errors
|
2024-05-12 01:57:40 +02:00 |
Mikolaj Wielgus
|
36bc606401
|
autorouter: fix off-by-one error when walking over ratlines
|
2024-05-11 05:00:53 +02:00 |
Mikolaj Wielgus
|
a5dcacdd69
|
egui: draw routing start and stop
|
2024-05-10 20:37:13 +02:00 |
Mikolaj Wielgus
|
9ac4c780b5
|
router: store origin and target in navmesh
|
2024-05-10 19:54:03 +02:00 |
Mikolaj Wielgus
|
c1db44c25f
|
autorouter: reorder code to avoid peeking in the edges iterator
|
2024-05-10 19:38:14 +02:00 |
Mikolaj Wielgus
|
83f3245e55
|
router: exclude same-net nodes from navmesh (except for start and stop)
|
2024-05-10 01:25:00 +02:00 |
Mikolaj Wielgus
|
91f9466d74
|
autorouter,router: route only single layer at a time
It makes no sense to route multiple layers at once until we implement
automatic via placement, which is going to take a lot of time.
|
2024-05-07 20:06:54 +02:00 |
Mikolaj Wielgus
|
eaecb99146
|
egui: draw the navmesh
This required some considerable rearrangements in `Router`.
|
2024-05-06 02:35:43 +02:00 |
Mikolaj Wielgus
|
946f2dbd6c
|
autorouter: make it possible to delegate the loop outside `.autoroute()`
|
2024-05-05 17:55:47 +02:00 |
Mikolaj Wielgus
|
a2c8ae7e70
|
autorouter: put `Layout` in a mutex
|
2024-05-04 18:02:34 +02:00 |
Mikolaj Wielgus
|
2be8baab55
|
autorouter: route all ratline endpoint pairs
Routed bands are intersecting with each other for some reason, but at
least this doesn't crash.
|
2024-05-03 01:36:07 +02:00 |
Mikolaj Wielgus
|
531bc6d22c
|
autorouter: as a starter, route the endpoints of only the first ratline
|
2024-05-03 01:36:04 +02:00 |
Mikolaj Wielgus
|
9c332bdde3
|
egui: add "Autoroute" button
Not functional yet as I still haven't implemented
`Autorouter::autoroute()`
|
2024-05-02 18:53:43 +02:00 |
Mikolaj Wielgus
|
c74e69a5e9
|
autorouter: move ratsnest to `Autorouter`, move overlay to egui module
|
2024-04-27 01:12:01 +02:00 |
Mikolaj Wielgus
|
81f9f82f40
|
overlay: move overlay to new autorouter module
|
2024-04-26 02:34:25 +02:00 |