Mikolaj Wielgus
c24d748bea
autorouter: don't save in history until command is successfully finished
2024-06-20 12:14:51 +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
d193ea6565
drawing: rename "segbends" to "canes"
...
In addition to a seg and a bend, a segbend actually also contains a dot,
so let's rename it to "cane", which is also easier to translate.
2024-06-18 01:16:12 +02:00
Mikolaj Wielgus
a7b4a84b98
layout: remove inserted dots if placing via fails
2024-06-17 23:59:36 +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
Tomasz Cichoń
13c8237da6
specctra: remove casts, accept floating point precision used internally
2024-06-16 22:34:11 +02:00
Tomasz Cichoń
f37e7ce88d
specctra: pass errors to app instead of panicking
2024-06-16 20:02:51 +02:00
Tomasz Cichoń
aa0616840c
specctra: remove old file reader based on serde
2024-06-16 19:02:54 +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
96ad809a83
tests: fix multilayer test (somehow I managed to earlier push it broken)
2024-06-16 14:22:30 +02:00
Mikolaj Wielgus
8c2ad87bf0
dsn: replace structure with new renamed structure2
2024-06-16 14:05:49 +02:00
Mikolaj Wielgus
4ec9467649
tests: test names of loaded layers in signal integrity test test
2024-06-15 01:07:18 +02:00
Mikolaj Wielgus
c4788c0277
drawing: remove hardcoded layer count of 2
2024-06-15 01:06:50 +02:00
Mikolaj Wielgus
c4ac090790
tests: add signal integrity test board (4-layer) test data
2024-06-14 23:21:33 +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
339387c657
drawing: remove forgotten leftover dbg!() traces
2024-06-13 18:46:27 +02:00
Mikolaj Wielgus
cff6b5aaf6
cleanup: cargo fix, cargo fmt
2024-06-13 13:38:12 +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
c5842b7821
drawing: fix contracts on placement failures
2024-06-12 14:44:26 +02:00
Tomasz Cichoń
7d9bf1346a
dsn: add new parser/writer and .ses export prototype
2024-06-12 13:39:42 +02:00
Mikolaj Wielgus
90bc90350d
tests: test via placement failure
2024-06-12 01:51:04 +02:00
Mikolaj Wielgus
f91dadf4d3
drawing,layout,board: categorize methods as possibly infringing and not
2024-06-11 23:57:47 +02:00
Mikolaj Wielgus
9e65a28c3d
drawing: cosmetic renamings and rearrangements
2024-06-11 13:53:43 +02:00
Mikolaj Wielgus
3b4614b16b
egui: consume the click when toggling Place Via mode
2024-06-11 00:00:55 +02:00
Mikolaj Wielgus
8c9a13e712
layout: use inclusive range to describe via layers
2024-06-10 23:51:15 +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
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
5d082d81c0
layout: implement `MakePrimitiveShape` for vias
2024-06-09 21:29:03 +02:00
Mikolaj Wielgus
c5148b0cb1
tests: update tht_diode_bridge_rectifier reference data
2024-06-09 20:42:26 +02:00
Mikolaj Wielgus
fc1f7e2613
layout: implement storage for vias
2024-06-09 17:24:12 +02:00
Mikolaj Wielgus
e5829d929a
dsn: don't divide widths and clearances by 100
2024-06-08 23:07:28 +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
98363fbfd1
drawing: remove unnecessary contracts on `&self` methods
2024-06-08 18:28:34 +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
cd1e78db6f
tests: perform some undo-redo sanity testing before each test
2024-06-07 19:23:13 +02:00
Mikolaj Wielgus
91480453b3
tests: add 3-pin XLR THT female to THT female test
...
Hardly functional so far.
2024-06-07 02:14:05 +02:00
Tomasz Cichoń
af1bb7069f
dsn: add support of keepouts
...
Includes some ugly hacks to get the deserializer to accept the relevant
structs for now.
2024-06-06 23:31:12 +02:00
Mikolaj Wielgus
5b4f35b57e
tests: add 3-pin XLR THT female to THT female test board
...
Cannot load yet, as the footprint used contains keepout areas for which
we haven't implemented parsing yet.
2024-06-06 21:22:26 +02:00
Mikolaj Wielgus
eea1da604f
tests: keep single-layer and multilayer test data in separate dirs
2024-06-06 14:49:50 +02:00