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
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
806742736a
cleanup: get rid of `*Trait` names for traits, use verbs and sentences
2024-07-03 13:40:37 +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
00b997b60e
egui: fix compilation error -- import `Trace` from trace, not tracer
2024-06-28 17:15:52 +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
3fe305b99a
sdl2-demo: fix compilation errors
2024-06-25 15:31:21 +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
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
Mikolaj Wielgus
d34554f075
egui: fix selecting nodes whose bboxes overlap other bboxes
2024-06-21 07:11:41 +02:00
Mikolaj Wielgus
169ddf7d80
egui: add button to toggle showing navmesh
2024-06-20 19:33:18 +02:00
Mikolaj Wielgus
5161eecd49
egui: don't clear navmesh after routing is done
2024-06-20 18:55:57 +02:00
Mikolaj Wielgus
ae2a862e0e
router: store every vertex (fails tests but almost functional)
...
Previously, rail vertices were not stored but generated on demand from
data stored in a `Triangulation<...>`. This functionality is removed in
favor of storing every vertex in `Navmesh`'s own graph built from the
`Triangulation<...>`, which is now afterwards discarded.
Tests still fail and rails aren't added yet, but this is close enough to
completion for me to commit so that I can now go to sleep without
worrying.
2024-06-20 01:32:27 +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
7f46d436af
egui: fix sign of Y displayed on the bottom bar
2024-06-18 02:07:38 +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
7dd0f3e629
egui: fix painting zones (forgot to replace literal with var earlier)
2024-06-17 23:59:36 +02:00
Mikolaj Wielgus
d56d6046a4
egui: add bottom bar displaying cursor position
...
Useful for writing tests.
2024-06-17 23:59:36 +02:00
Mikolaj Wielgus
9d00e95457
specctra: change "dsn" to "specctra" where it's about both DSN and SES
2024-06-16 18:04:20 +02:00
Mikolaj Wielgus
e723c28f26
egui: add default colors for middle layers in 4-layer boards
2024-06-14 05:14:37 +02:00
Mikolaj Wielgus
008dcfeca0
geometry: store layer in `usize`, not `u64`
2024-06-14 04:58:52 +02:00
Mikolaj Wielgus
1cca9fe6e1
egui: support displaying an arbitrary number of layers
2024-06-14 03:47:27 +02:00
Mikolaj Wielgus
300529ea75
egui: hide layers marked as hidden
2024-06-13 18:47:47 +02:00
Mikolaj Wielgus
6d66558a72
egui: move viewport to its own file
2024-06-13 13:37:54 +02:00
Mikolaj Wielgus
ce1a070a70
egui: move the top panel to its own file
2024-06-13 02:22:17 +02:00
Mikolaj Wielgus
5067fb55d9
egui: impl. layer display manager sidebar (not affecting display yet)
2024-06-13 02:21:32 +02:00
Mikolaj Wielgus
90bc90350d
tests: test via placement failure
2024-06-12 01:51:04 +02:00
Mikolaj Wielgus
3b4614b16b
egui: consume the click when toggling Place Via mode
2024-06-11 00:00:55 +02:00
Mikolaj Wielgus
6884ca6531
egui: add button to modally invoke via placement
2024-06-10 16:49:05 +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
5d082d81c0
layout: implement `MakePrimitiveShape` for vias
2024-06-09 21:29: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
Mikolaj Wielgus
19a4766cb5
board,dsn: introduce `MesadataTrait`, an extension of `RulesTrait`
...
The trait's contents aren't implemented yet.
"mesa" is supposed to mean the opposite of "meta". By "mesadata" I don't
mean mere content or payload: I mean data that is stored *inside* or
*under* such content or payload.
I found this meaning of "mesa" -- as opposite of "meta" -- by browsing
somewhere on the internet. Fair chance many classicists would think
poorly of this usage. But I don't care about etymology: I just need a
word to close a lexical gap.
2024-06-08 16:36:21 +02:00
Mikolaj Wielgus
1dc3718159
board: move board to its own directory
2024-06-08 13:37:27 +02:00
Mikolaj Wielgus
86d2555b36
autorouter: accessibly store pin-pairs between which routed bands are
2024-06-05 20:26:23 +02:00
Mikolaj Wielgus
a80dfc10be
autorouter,router: shorten and clarify terminology
...
Rename "triangulation vertex" to just "trianvertex".
Rename "navigation vertex" to just "navvertex".
The standalone word "vertex" was overused and in some cases confusing.
2024-06-03 12:46:27 +02:00
Mikolaj Wielgus
7e022aa2cf
sdl2-demo: fix compilation errors
2024-05-31 02:09:11 +02:00