Commit Graph

1335 Commits

Author SHA1 Message Date
Mikolaj Wielgus 1bbb068af9 feat(autorouter/compass_direction): Anteroute fanout vias in eight "compass" directions 2025-10-02 17:05:50 +02:00
Mikolaj Wielgus 71feedc6ce fix(router/prenavmesh): Don't fillet-exclude origin and destination from prenavmesh 2025-10-02 15:54:18 +02:00
Mikolaj Wielgus 9fcd12e6e1 Revert "refactor(autorouter/anterouter): Anchor in reference to dot circle, not bbox"
This reverts commit 46b84151fa.

This commit also added randomization of anchor position. I thought about
it again and decided that it was a bad idea.
2025-10-02 10:26:28 +02:00
Mikolaj Wielgus 46b84151fa refactor(autorouter/anterouter): Anchor in reference to dot circle, not bbox 2025-10-01 00:21:09 +02:00
Ellen Εμιλία Άννα Zscheile 0e3b9f83b5 fix(topola-egui): Uniform naming of planar autoroute operations
replaces "single-layer" with "planar" to be uniform vs. "Planar Autoroute"
2025-09-29 20:22:05 +02:00
Mikolaj Wielgus b50e58b0fa feat(autorouter/ratsnest): Have one terminating dot for each layer of ratvertex
Some routes projects still crash while autorouting, but we are
progressing.
2025-09-29 18:22:56 +02:00
Outbreak2096 d53aa2a678
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (64 of 64 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-09-27 13:45:26 +00:00
Mikolaj Wielgus 9a5b2095d5 feat(autorouter/autorouter): Implement germ of multilayer autorouting 2025-09-27 15:45:10 +02:00
fogti 471c12f657
Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-09-25 22:57:44 +00:00
Mikolaj Wielgus 0e12f32db4 chore: Correct copyright lines (MIT, not MIT OR Apache-2.0) 2025-09-26 00:56:08 +02:00
Mikolaj Wielgus 6930f2fb1d feat(autorouter/presorter): Make presorter parametrizable 2025-09-25 17:36:12 +02:00
Mikolaj Wielgus c120a43d04 refactor(autorouter/presorter): Move some SCC code to new file 2025-09-25 16:42:00 +02:00
Mikolaj Wielgus a703b1ec4e fix(triangulation): Don't panic if constraint addition due to intersection 2025-09-24 11:09:27 +02:00
Mikolaj Wielgus c14f2d2e37 fix(autorouter/ratsnest): Prioritize principal layer ratlines over others 2025-09-24 01:50:55 +02:00
Mikolaj Wielgus ecb8ab4758 test: Fix test build error 2025-09-23 16:37:37 +02:00
Mikolaj Wielgus a4a000feb9 feat(autorouter/ratsnest): Have ratlines across layers 2025-09-23 13:25:32 +02:00
Mikolaj Wielgus d74a06b2ea feat(topola-egui): Hide ratlines that were already routed 2025-09-22 15:03:14 +02:00
Mikolaj Wielgus 00aa79ff31 feat(drawing/query): Don't infringe or collide primitives on different layers 2025-09-22 01:27:08 +02:00
Mikolaj Wielgus f4b78749b1 feat(topola-egui): Show shape of infringee in addition to inflated infringer's 2025-09-21 20:22:20 +02:00
Mikolaj Wielgus 3078d9d546 feat(topola-egui): Highlight node index of the obstacling primitive 2025-09-21 14:40:26 +02:00
Mikolaj Wielgus d75c73b540 feat(topola-egui): Add option to display primitive indices on debug overlay 2025-09-21 13:09:48 +02:00
Mikolaj Wielgus 5ec5b2f809 test: Add astable_multivibrator test project (no testing code yet) 2025-09-20 23:20:11 +02:00
Mikolaj Wielgus da37fbe2ec feat(board/mod): Make it possible to iterate over nodes under pin name 2025-09-19 13:05:31 +02:00
Mikolaj Wielgus d708c7177a fix(geometry/geometry): Rewrite uses of `debug_assert!(...)` to not break release 2025-09-18 00:03:24 +02:00
Mikolaj Wielgus ffb96ffff1 chore: Change reserved `debug` profile name to `dev`, the correct name, in CI
Also, it's `--cargo-profile`, not `--profile`, for `cargo nextest`.
2025-09-17 16:41:33 +02:00
Mikolaj Wielgus 23988477a2 chore: Fix `cargo build` command, there is no `-P` switch, only `--profile` 2025-09-17 16:34:00 +02:00
Mikolaj Wielgus 0c3c8c3e3d chore: Set build profile correctly this time in CI 2025-09-17 16:28:36 +02:00
Mikolaj Wielgus e60986133e chore: Add optimized release build and test to CI 2025-09-17 16:11:06 +02:00
Mikolaj Wielgus 5abce8b655 test: Report route lengths for benchmarking purposes 2025-09-17 14:38:46 +02:00
Mikolaj Wielgus e7e3e7b6f8 test: Add test routines for `4x4_1206_led_matrix_breakout` 2025-09-17 13:26:34 +02:00
Mikolaj Wielgus 979493efe4 test: Use `rstest_reuse` crate to reuse test cases 2025-09-17 12:26:13 +02:00
Mikolaj Wielgus 59115b20d1 test: Use rstest to parametrizedly split tests into plain and with_undo_redo_replay 2025-09-17 12:14:52 +02:00
Mikolaj Wielgus a390c67e4f test: Split test_tht_de9_to_tht_de9 into two test routines to measure speed better 2025-09-17 11:32:32 +02:00
Mikolaj Wielgus 59cd745332 chore: Fix one more remaining nightly build error 2025-09-16 21:17:36 +02:00
Mikolaj Wielgus c50c520e7c chore: Fix nightly build error due to calling function with wrong name 2025-09-16 14:07:18 +02:00
Mikolaj Wielgus 50597653ad refactor(geometry/geometry): Remove `.graph()` and its remaining usages
This will allow us to store the dots, segs, bends differently than currently.
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus f1e65267da refactor(triangulation): Don't use `.graph()` when creating triangulations 2025-09-15 22:42:45 +02:00
Mikolaj Wielgus 71fdec2f06 refactor(autorouter/ratsnest): Move unionfind to new file, don't use `.graph()` there 2025-09-15 22:42:45 +02:00
Mikolaj Wielgus e0cfc521ef refactor(geometry/geometry): Replace `NodeIndex<usize>` with just `usize`
This is a step towards ceasing to use Petgraph as internal storage for
geometry.
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus 6a2102e0a2 refactor(graph): Rename `GetPetgraphIndex` to `GetIndex` 2025-09-15 22:42:45 +02:00
Mikolaj Wielgus 7c4bc87301 refactor(drawing/primitive): Rename Primitive<...> to PrimitiveRef<...> with its variants 2025-09-15 22:42:45 +02:00
Mikolaj Wielgus 3b520b56c6 chore: Fix command invocation in CI 2025-09-15 17:06:11 +02:00
Mikolaj Wielgus 73080fb320 chore: Attempt to fix missing `cargo binstall` command error in CI 2025-09-15 15:52:54 +02:00
Mikolaj Wielgus 1ba0b47cef test: Use `cargo nextest` instead of `cargo test` to show test run times
This will be very useful for optimizing and benchmarking.
2025-09-15 15:33:42 +02:00
Mikolaj Wielgus aee8c42720 feat(autorouter/presorter): Take into account ratline-pad intersections 2025-09-11 23:25:03 +02:00
Mikolaj Wielgus 1b485e81a6 feat(autorouter/permuter): Implement permutation by ratline cut
Not yet used, and can get stuck in an infinite loop, but the cut seems
to work.
2025-09-09 16:24:15 +02:00
Mikolaj Wielgus fe7c258851 refactor(autorouter/permutator): Move presorting to new file, `presorter.rs` 2025-09-07 16:40:29 +02:00
Mikolaj Wielgus 12ee2f3984 refactor(autorouter/permutator): Move permuter code to new `permuter.rs` file 2025-09-06 23:59:45 +02:00
Mikolaj Wielgus 4326925bbf feat(autorouter/permutator): Preorder and permutate over whole ratline conn. comps
This is not enough to autoroute 4x4_1206_led_matrix_breakout, but is as
usual, is a step forward.
2025-09-06 01:24:00 +02:00
Mikolaj Wielgus 19c6ede09a refactor(autorouter/autorouter): Move ratline sorting to `permutator.rs` 2025-09-05 12:58:30 +02:00