Commit Graph

1163 Commits

Author SHA1 Message Date
mikolaj 299d11b05f contributing: some small copyediting 2024-07-09 21:46:39 +00: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 71a2a3ebbf sdl2-demo: fix compilation errors 2024-07-09 19:53:52 +02:00
Mikolaj Wielgus 47e1f7760e tests: adjust loading design file to the new `BufRead` interface 2024-07-09 18:57:37 +02:00
Mikolaj Wielgus 3fd31746af drawing: make not having infringables the default when adding canes
The previous commit only did it for inserted canes.
2024-07-09 18:56:34 +02:00
Mikolaj Wielgus 1c07eb96ac drawing: for now, make adding canes have no infringables 2024-07-09 17:01:29 +02:00
Mikolaj Wielgus c34cd730c5 egui: add keyboard shortcuts and basic action abstraction 2024-07-09 13:10:02 +02:00
Mikolaj Wielgus c36ccc287a autorouter: improve error handling by removing some unwraps 2024-07-08 13:25:58 +02:00
Mikolaj Wielgus f4054783d1 cleanup: remove committed output file and commented-out code 2024-07-08 02:06:55 +02:00
Mikolaj Wielgus b9a99237a1 egui: clear selection when routing is initiated 2024-07-08 02:01:17 +02:00
Szpachlarz e706134ed0 cli: create basic cli application
it is possible to load design and history,
 not yet possible to export results.
2024-07-07 12:05:53 +02:00
Mikolaj Wielgus 2368feded1 egui: fix saving history files 2024-07-06 15:02:59 +02:00
Mikolaj Wielgus 3a7e504c29 egui: implement loading history in WASM 2024-07-06 00:08:35 +02:00
Mikolaj Wielgus 0745604658 egui: put sender and receiver in wrapper objects 2024-07-05 18:02:54 +02:00
Mikolaj Wielgus e9ba5cd9b3 specctra: move file opening code outside, operate on `BufRead` instead 2024-07-04 23:55:58 +02:00
Mikolaj Wielgus fd23be7a8a router: step on successful probes 2024-07-04 13:52:26 +02:00
Mikolaj Wielgus b48ce70aad egui: add timer to control update frequency 2024-07-04 01:02:40 +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 727eb37c6e router: have probing and visiting as separate states
This feels overengineered, but I need something like this for better
debuginfo.
2024-07-03 18:12:07 +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 b1f60847b3 drawing: move head length measurement methods to new refstruct 2024-07-03 03:37:14 +02:00
Mikolaj Wielgus 3c03b2dfa1 geometry: create `MeasureLength` trait to measure lengths 2024-07-02 23:33:29 +02:00
Mikolaj Wielgus 27d1c9e712 router: step on every probe, not only navvertices 2024-07-02 02:36:42 +02:00
Mikolaj Wielgus 3c578ccada egui: display both CW and CCW navvertices separately 2024-07-01 21:21:08 +02:00
Mikolaj Wielgus 47c888d21b egui,autorouter,router: restore highlighting active navmesh edges 2024-07-01 18:56:41 +02:00
Mikolaj Wielgus 03f996721d egui: restore drawing yellow dots at routing source and target 2024-07-01 14:09:17 +02:00
Mikolaj Wielgus edf81feccc egui: restore highlighting selected node shapes 2024-07-01 12:12:27 +02:00
Mikolaj Wielgus 2259a75d92 egui,autorouter: restore displaying navmesh 2024-07-01 00:50:24 +02:00
Mikolaj Wielgus ee6eeac6d8 egui: step through every band routing step, once per frame
At last! We finally have that implemented without concurrency.
2024-06-29 22:40:06 +02:00
Mikolaj Wielgus 6cadcd3b41 egui: remove most of usages of shared-state parallelism 2024-06-29 17:11:29 +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 00b997b60e egui: fix compilation error -- import `Trace` from trace, not tracer 2024-06-28 17:15:52 +02:00
Mikolaj Wielgus da1438195a router: create new `Router` object, a wrapper over `Layout` 2024-06-28 14:46:15 +02:00
Mikolaj Wielgus 244367c4d7 router: rename `Router` to `Route`
`Router`, soon to be written, will be a wrapper over `Board`.
2024-06-28 01:12:37 +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 664bbee0b9 router: make `Astar` own the navmesh 2024-06-27 21:24:49 +02:00
Mikolaj Wielgus 0b3ebdbe3c router: make it possible for `Astar` to own its graph
We aren't using this yet however because it requires a substantial
rearrangement of `Router`'s code.
2024-06-27 15:07:58 +02:00
Mikolaj Wielgus 0419904b3f router: re-encapsulate graph in `Navmesh` and vertices in `VertexIndex`
As in previous commit, this was done in the past, but I removed it when
improving `Navmesh` to hold each navvertex instead of calculating tem
during access.
2024-06-26 22:34:59 +02:00
Mikolaj Wielgus 5254f768e5 router: implement (again) graph traversal traits for `Navmesh`
These were implemented in the past, but I removed it when I made
`Navmesh` store each navvertex instead of calculating tem on the fly.
2024-06-26 20:27:29 +02:00
Mikolaj Wielgus 114329a1ef router: don't store `&'a mut Layout` in `Router`
First step towards removing multithreading in code in favor of stepping
over the routing process.
2024-06-26 13:39:57 +02:00
Mikolaj Wielgus 43d84dc29e router: restore calculation of probe length (was temp. hardcoded to 0.0) 2024-06-26 00:47:16 +02:00
Mikolaj Wielgus 3fe305b99a sdl2-demo: fix compilation errors 2024-06-25 15:31:21 +02:00
Mikolaj Wielgus b6cfcc8518 router: don't panic if wraparound navvertex has no cw
This may happen if target's guidecircle is in line of sight but its
center is not.
2024-06-25 15:00:15 +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 514eab683a egui: fix painting bends: circles of these are actually inner circles
I've changed field names to avoid repeating this mistake in the future.
2024-06-25 10:47:49 +02:00
Mikolaj Wielgus bd26f5fef8 layout: fix via placement contract for number of nodes 2024-06-25 00:40:53 +02:00
Mikolaj Wielgus e2552a156b egui: use smaller via size 2024-06-25 00:40:32 +02:00
Mikolaj Wielgus b35e6fc66a egui: fix painted bend direction 2024-06-25 00:40:06 +02:00