Commit Graph

1236 Commits

Author SHA1 Message Date
Mikolaj Wielgus 19c6ede09a refactor(autorouter/autorouter): Move ratline sorting to `permutator.rs` 2025-09-05 12:58:30 +02:00
Mikolaj Wielgus f99f31e356 refactor(autorouter/autoroute): Move permutator to new file, `permutator.rs` 2025-09-05 12:33:15 +02:00
Mikolaj Wielgus e5e5f9513e feat(autorouter/ratline): Only count interior ratline intersections
This hardly makes a difference for now, but may become useful later.
2025-09-04 17:03:15 +02:00
Mikolaj Wielgus b49aa9e1b7 fix(autorouter/ratline): Don't count ratlines with shared endpoint as intersecting 2025-09-04 14:37:09 +02:00
Mikolaj Wielgus eb0ee25565 fix(drawing/drawing): Don't infringe upon wraparound limbs and its fillets' limbs
Sadly, this degrades performance considerably. But we will improve it later.
2025-09-03 01:00:18 +02:00
Mikolaj Wielgus c2cd565a9b refactor(drawing/gear): Remove `GetPrevNextInChain` trait
It wasn't helpful after all.
2025-09-02 22:32:49 +02:00
Mikolaj Wielgus 9f7e10bc03 refactor(drawing/drawing): Add filtering predicate also for `.insert_cane(...)` 2025-09-02 19:58:30 +02:00
Mikolaj Wielgus 3ddf382325 refactor(drawing/drawing): Remove `*_with_infringement_filtering` suffix
Having a filter predicate is useful too often to keep two sets of
methods.
2025-09-02 19:46:39 +02:00
Mikolaj Wielgus ce0424b3e6 fix(autorouter/autoroute): Skip permutations that result in nothing undone 2025-09-01 20:22:39 +02:00
Mikolaj Wielgus 3cc2315ebe refactor(autorouter/autoroute): Move permuting to new trait 2025-09-01 16:43:42 +02:00
Gusted 8fb94c96ff
Translated using Weblate (Dutch)
Currently translated at 100.0% (63 of 63 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/nl/
2025-09-01 11:26:48 +00:00
Mikolaj Wielgus 03e70a1a7e fix(router/navmesh): Don't unionize with fillets 2025-08-31 21:05:39 +02:00
Mikolaj Wielgus 3e466960fa feat(router/prenavmesh): Have fillets as prenavnodes instead of long vertex chains 2025-08-31 14:34:28 +02:00
Mikolaj Wielgus 521bb0598a refactor(specctra/design): Place fillet circles, netless for now 2025-08-30 16:52:17 +02:00
Mikolaj Wielgus 4a057d3499 fix(math/mod): Move code pertaining to circles to new file, circle.rs 2025-08-29 13:36:48 +02:00
Mikolaj Wielgus a9cb7f8848 fix(router/navmesh): Use union-find to have all overlapping navnodes actually added 2025-08-28 17:15:28 +02:00
Mikolaj Wielgus 0f4bf1b0be fix(router/navmesh): Make sure all clearance-intersecting navnodes have the same edges
This does not yet fully fix the problem with routing around SMD pads
failing, but is a step forward.
2025-08-28 11:35:20 +02:00
Mikolaj Wielgus 41438eeccc feat(drawing/gear): Implement finding next and previous gear in chain for fixed dots 2025-08-26 00:23:48 +02:00
Mikolaj Wielgus 310e983b1d refactor(drawing/drawing): Move infringement and collision detection to drawing/query 2025-08-25 02:23:02 +02:00
Mikolaj Wielgus ca4a2d1cbf refactor(drawing/query): Rename collect.rs to query.rs, change trait to direct impl 2025-08-24 22:31:10 +02:00
Mikolaj Wielgus 6cb01dbb2a refactor(router/thetastar): Factor out returning status 2025-08-24 00:12:45 +02:00
Mikolaj Wielgus fca8e44269 feat(router/router): Backtrack if initial parent was on the same compound 2025-08-24 00:12:38 +02:00
Mikolaj Wielgus b21f77c9ab feat(router/thetastar): Transition state for each backtrack step for better debugging 2025-08-23 12:09:45 +02:00
Mikolaj Wielgus 5a1cb564dc refactor(router/thetastar): Backtrack not once, but repeatedly, if condition is met 2025-08-23 12:09:45 +02:00
Mikolaj Wielgus cf100ac6f6 test: Add 4x4_1206_led_matrix_breakout test project (no testing code yet) 2025-08-23 12:07:06 +02:00
Mikolaj Wielgus 676c24a428 fix(math/bitangents): Calculate bitangents even for intersecting circles
This fixes the bug where the router was failing to draw around SMD pads.
2025-08-23 12:07:06 +02:00
fogti 1ddca4e580
Translated using Weblate (German)
Currently translated at 100.0% (63 of 63 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-08-20 15:09:13 +00:00
Outbreak2096 eb538a6ffe
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (63 of 63 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-08-19 14:21:29 +00:00
Mikolaj Wielgus ff6d00d34a test: Add vga_dac_breakout test
This simple breakout board tests routing around SMD pads.
2025-08-19 15:55:20 +02:00
Mikolaj Wielgus cc6065099b fix(router/thetastar): Don't forget to rm. probe when there's shorter path already
This fixes a fatal race condition that made tht_de9_to_tht_de9 always
fail since 7eff7ad9f0a24a9688ab5235f01115f7c85b1ff4.
2025-08-19 15:55:20 +02:00
Mikolaj Wielgus 7bb1a1efbc docs: Add some comments warning about race conditions, rename some identifiers 2025-08-19 15:55:20 +02:00
Mikolaj Wielgus 3738bacf6f fix(math/bitangents): Calculate bitangents even for intersecting circles
This fixes the bug where the router was failing to draw around SMD pads.
2025-08-19 15:46:12 +02:00
Mikolaj Wielgus 5fd4926fb6 feat(topola-egui): Display guide-bitangents on debug overlay 2025-08-16 01:17:29 +02:00
Mikolaj Wielgus 7fbfed710c refactor(drawing/guide): Make method names somewhat clearer 2025-08-15 23:50:11 +02:00
Mikolaj Wielgus 177c8abb18 refactor(drawing/guide): Instead of trait, just impl guide methods on `Drawing` 2025-08-15 23:31:23 +02:00
Mikolaj Wielgus 9819879617 feat(topola-egui): Display guide-circles on debug overlay 2025-08-15 16:18:31 +02:00
Mikolaj Wielgus fac52f9d8b fix(drawing/drawing): Don't infringe on and from loose dots
These resulted in false positives for line-of-sight paths.
2025-08-12 22:04:21 +02:00
Mikolaj Wielgus 191e646d68 refactor(math/line): Rename `NormalLine` to `LineInGeneralForm`
The previous name sounded as if it was a normal (to some surface), which
is not the case.
2025-08-12 20:01:16 +02:00
Mikolaj Wielgus 987a4c6e9e fix: Flip by X instead of rotating by 180 degrees
Obviously -- flip is undone by a flip, not a rotation. This corrects the
previous commit.
2025-08-11 21:15:40 +02:00
Mikolaj Wielgus b7a5d2ccb8 fix(specctra-core): Rotate components placed on back by 180 degrees 2025-08-11 20:21:45 +02:00
Mikolaj Wielgus ac7b24f939 refactor(autorouter/autoroute): Store vecs of edits instead of large edits
This results in a large copy, but it should be possible to refactor the
code later to get rid of this.
2025-08-10 11:30:50 +02:00
Mikolaj Wielgus 5bff83ecbd refactor: Add method to join iterable of edits into one edit 2025-08-09 22:55:45 +02:00
Ellen Emilia Anna Zscheile 6f7586227c feat(board/edit): Edit structures should implement Default trait 2025-08-09 22:44:33 +02:00
Mikolaj Wielgus 791291b82e feat(router/draw): Try to add canes before trying to squeeze them through 2025-08-09 21:08:10 +02:00
Mikolaj Wielgus 83285dde6d feat(drawing/drawing): Make it possible to have multiple outers for each gear 2025-08-09 21:08:10 +02:00
Mikolaj Wielgus 6317d8b08a feat(geometry/geometry): Create outward bend walker, use it for R-tree updates
Drawing and above abstraction layers do not use it yet, but this will
change soon.
2025-08-09 21:08:10 +02:00
Outbreak2096 8cf26d1799 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (61 of 61 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-07-23 18:50:16 +02:00
fogti f136884de8 Translated using Weblate (German)
Currently translated at 100.0% (61 of 61 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-07-23 18:50:16 +02:00
Ellen Emilia Anna Zscheile 8732ee7fbb refactor(geometry/edit): Put reverse and merge functionality into trait (DRY) 2025-07-20 12:40:56 +02:00
Mikolaj Wielgus 2b95832cf7 test: Test tht_de9_to_tht_de9 with permuted autorouting as well 2025-07-19 21:42:53 +02:00