Mikolaj Wielgus
169e843736
egui: further make an `Activity` enum with error and status types
2024-09-30 03:40:53 +02:00
Mikolaj Wielgus
c8a40860af
egui: s/ExecuteWithStatus/ActivityWithStatus, move it to own file
2024-09-30 01:36:22 +02:00
Mikolaj Wielgus
1c7042c8c3
autorouter: move `Execute` and `ExecuteWithStatus` to own file
2024-09-29 03:17:07 +02:00
Alain Emilia Anna Zscheile
c42eab0126
vendored/contracts: fix overly verbose type annotations for enum results
...
This fixes issue #15 .
2024-09-28 00:38:16 +02:00
Mikolaj Wielgus
4b6e3e0a5c
egui,router: add option to toggle squeezing
2024-09-01 01:24:52 +02:00
Mikolaj Wielgus
0b7e5f1b9b
egui,autorouter,router: add option to toggle wrapping around bands
2024-08-31 14:12:38 +02:00
Mikolaj Wielgus
4d0c38664e
router: have a binavvertex on each bend
2024-08-31 01:37:27 +02:00
Mikolaj Wielgus
a52515f6d3
autorouter: add option to disable presorting by pairwise detours
2024-08-30 23:11:25 +02:00
Mikolaj Wielgus
f7f2e8ea49
autorouter: if band removal fails, propagate error instead of panicking
2024-08-30 16:32:37 +02:00
Mikolaj Wielgus
72e630543d
autorouter: if unable to route to compare detours, assume equal
2024-08-26 01:33:18 +02:00
Mikolaj Wielgus
63d3e345aa
egui,autorouter: add action and command to measure length of bands
2024-08-23 04:14:06 +02:00
Mikolaj Wielgus
41bd60ea59
cli: fix compile errors
2024-08-08 11:28:44 +02:00
Mikolaj Wielgus
deb2fffbf1
autorouter: show whole detour compare animation
2024-08-06 21:29:23 +02:00
Mikolaj Wielgus
c9d99c2c1f
autorouter: sort by pairwise total detour lengths before autorouting
2024-08-06 15:43:25 +02:00
Mikolaj Wielgus
33206567e3
egui,autorouter: display message once command completes
2024-08-06 02:34:54 +02:00
Mikolaj Wielgus
c12eea5b4d
autorouter: don't crash after comparing detours
2024-08-05 23:05:10 +02:00
Mikolaj Wielgus
47d8e82344
egui,autorouter: make detour comparison invokable from GUI
2024-08-05 13:14:56 +02:00
Mikolaj Wielgus
b2c9305cea
autorouter: add new compare command to be used for sorting later
2024-08-05 04:33:51 +02:00
Mikolaj Wielgus
43b48e78e3
router: use `Step` trait for `Astar` too
2024-08-04 18:50:58 +02:00
Mikolaj Wielgus
ece9c4aa5a
autorouter,router: put stepper finishing in `Step` trait too
2024-08-04 16:36:11 +02:00
Mikolaj Wielgus
1305487c7f
autorouter: use new `Step` trait for stepping
2024-08-03 16:40:04 +02:00
Mikolaj Wielgus
5b32797022
autorouter: return a different status every time routing a band finishes
2024-08-01 12:56:24 +02:00
Mikolaj Wielgus
fcffb76de4
autorouter: create new command: Remove Selected Bands
2024-07-25 01:46:54 +02:00
Mikolaj Wielgus
b568f2d790
autorouter: split selection into pin selection and band selection
2024-07-24 14:59:28 +02:00
Mikolaj Wielgus
3bf4d2cdb1
autorouter,board: use both band uids and band termsegs
2024-07-24 02:27:11 +02:00
Mikolaj Wielgus
f7126dfa33
egui,autorouter: implement selecting bands
2024-07-23 13:36:57 +02:00
Mikolaj Wielgus
5da6ec4463
drawing: create methods for obtaining UIDs for bands
2024-07-23 02:03:55 +02:00
Mikolaj Wielgus
c17c004aae
cli: hard-code routing only the first layer by default
...
A temporary measure before we provide better layer control and prevent
duplication of routes.
2024-07-16 20:39:19 +02:00
Mikolaj Wielgus
87fd5d5d05
cli: make command file argument named and optional
2024-07-16 15:45:42 +02:00
Mikolaj Wielgus
be9ff3a85a
layout: rename "zone" to "poly"
...
We'll keep the term "zone" for higher-level concepts.
2024-07-09 23:09:39 +02:00
Mikolaj Wielgus
c36ccc287a
autorouter: improve error handling by removing some unwraps
2024-07-08 13:25:58 +02:00
Mikolaj Wielgus
def3f84d6a
egui,autorouter,router: highlight current obstacle
2024-07-04 00:39:08 +02:00
Mikolaj Wielgus
b6cb89c017
egui,autorouter,router: display infringement shapes (aka. "ghosts")
2024-07-03 21:00:50 +02:00
Mikolaj Wielgus
806742736a
cleanup: get rid of `*Trait` names for traits, use verbs and sentences
2024-07-03 13:40:37 +02:00
Mikolaj Wielgus
47c888d21b
egui,autorouter,router: restore highlighting active navmesh edges
2024-07-01 18:56:41 +02:00
Mikolaj Wielgus
2259a75d92
egui,autorouter: restore displaying navmesh
2024-07-01 00:50:24 +02:00
Mikolaj Wielgus
fd5a95103d
autorouter: step through every band routing step, not merely over bands
2024-06-29 03:07:20 +02:00
Mikolaj Wielgus
ea991314b2
board: remove `.remove_band()` method
2024-06-28 19:35:25 +02:00
Mikolaj Wielgus
4fa97509e4
router: split out `Trace` to its own file and give it its own methods
...
We'll be following this pattern:
* `Autorouter` - `Autoroute`,
* `Router` - `Route` (not yet done),
* `Tracer` - `Trace`.
Agent nouns (ending with -er) denote the object that holds large and
"unportable" parts of the state (such as `Board`, `Layout`, `Drawing`,
`Geometry`), while verbs (ending with -e) denote holders of other, more
"portable" parts of the state.
2024-06-27 23:58:02 +02:00
Mikolaj Wielgus
3ce8cfcabc
autorouter: fix redo operation
...
Redone operation was only dispatched, not truly executed.
2024-06-25 11:20:59 +02:00
Mikolaj Wielgus
0777b781f4
router: have two navvertices, CW and CCW, for each trianvertex
2024-06-22 17:33:11 +02:00
Mikolaj Wielgus
c24d748bea
autorouter: don't save in history until command is successfully finished
2024-06-20 12:14:51 +02:00
Mikolaj Wielgus
d4a310a5c0
graph: disambiguate naming of different kinds of indices
...
Disambiguate between node indices and (teir inner) petgraph indices.
Rename "band index" to "band first seg index", as we identify bands by
teir first segs. Rename "trianvertex index" and "navvertex index"
respectively to "trianvertex node index" and "navvertex node index", as
these point to nodes on the geometry graph and only indirectly to
vertices on the vertex graph.
2024-06-18 15:30:33 +02:00
Mikolaj Wielgus
e15e1efe5e
router: remove observers
...
The observer "pattern", arguably, is an anti-pattern that managed to get
into textbooks. It causes a lot of problems, it was a bad idea to use
it.
2024-06-18 01:37:45 +02:00
Mikolaj Wielgus
cff6b5aaf6
cleanup: cargo fix, cargo fmt
2024-06-13 13:38:12 +02:00
Mikolaj Wielgus
90bc90350d
tests: test via placement failure
2024-06-12 01:51:04 +02:00
Mikolaj Wielgus
b09ffad9b3
autorouter: create new command for placing vias
...
Undoing it is not implemented yet.
2024-06-10 02:38:24 +02:00
Mikolaj Wielgus
6b6affb3fc
autorouter: move autoroute command to its own file
...
Since it accesses `Autorouter`'s fields, I made these `pub(super)`. This
feels unidiomatic, but let's give it a shot.
2024-06-10 02:38:03 +02:00
Mikolaj Wielgus
fc1f7e2613
layout: implement storage for vias
2024-06-09 17:24:12 +02:00
Mikolaj Wielgus
7a02877eb4
board,dsn: move layer and net name bidirectional lookup to `Mesadata`
2024-06-08 21:39:25 +02:00