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
Mikolaj Wielgus
09c98f2d17
feat(autorouter/autoroute): Add option to toggle permutation
...
Updated with the following command in Fish shell:
```
for f in tests/**.cmd; jq ".done?.[].Autoroute[1].permutate |= false" $f | sponge $f; end
```
2025-07-19 21:42:47 +02:00
Mikolaj Wielgus
d181c7df1b
feat(autorouter/autoroute): Implement basic brute-force permutator
...
Permutates if and until a solution is found. Does not do optimization
so far.
Thanks to this, it is now possible to route the DE-9 to DE-9 test
without having to find the correct sequence of autorouting jobs.
2025-07-19 21:31:31 +02:00
Mikolaj Wielgus
f09aa053b6
test: Make tests attempt re-autoroute after undoing all
2025-07-17 21:08:46 +02:00
Mikolaj Wielgus
d7129354a1
feat(autorouter/autoroute): Record band assigns so undo actually works
...
Aborting the autoroute stepper was unimplemented and it would make the
autorouting job finish instead. This is fixed now.
2025-07-17 21:08:42 +02:00
Mikolaj Wielgus
1cc75a79e8
feat(autorouter/autoroute): Make it possible to abort autoroute stepper
...
Aborting the autoroute stepper was unimplemented and it would make the
autorouting job finish instead. This is fixed now.
2025-07-17 12:50:51 +02:00
Mikolaj Wielgus
2f4dac223c
fix(geometry/with_rtree): Do not remove only-modified dots when applying edit
...
This fixes a panic when undoing some bands.
180952c94f1c7c56c2ce5d2bdd3ab672aa0ccfec did not fix this problem
because we did not stop removing modified dots.
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
d6a82d5264
fix(drawing/drawing): Remove temporary recorder in outward bow updating code
...
I'm skeptical if this actually works, and I see no difference with this
removed. If this breaks the topo-navmesh code, it may be a better option
to just disable squeezing through under bends in it.
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
4d5fc25ae3
refactor(drawing/drawing): Some minor changes to method naming, comments, contracts
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
3c9ce32ff2
fix(geometry/edit): Remove `(None, None)` pairs when merging edits
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
6dc1ea601c
fix(geometry/with_rtree): Add edit apply special handling for modified dots
...
This does not fix the problems I'm encountering, but is an edge case I
should try to cover anyway.
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
21dd6ffd39
fix(geometry/with_rtree): Debug-assert instead of returning `Err(())`
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
a9c4456a54
fix(geometry/geometry): Debug-assert against failed node and edge removals
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
42c788063b
fix(geometry/edit): Find first gear correctly, don't rely on edge order
2025-07-17 12:49:25 +02:00
Ellen Emilia Anna Zscheile
4fea23c9ac
chore: Fix warnings about lifetime annotations
2025-07-17 12:33:31 +02:00
Outbreak2096
4851342fd8
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (60 of 60 strings)
Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-07-16 23:08:15 +00:00
Mikolaj Wielgus
5a0fec9618
fix(geometry/recording_with_rtree): Some more fixes against bend bbox invalidation
...
1f8ace9c77 did not fix all the bbox
invalidation problems, hopefully this gets this right now.
2025-07-16 19:35:51 +02:00
Mikolaj Wielgus
f75bae0666
fix(geometry/recording_with_rtree): Attach bends applied from edit
...
This was unimplemented, which made both redo and cane removal not work
correctly.
2025-07-16 15:27:56 +02:00
Mikolaj Wielgus
1f8ace9c77
fix(geometry/recording_with_rtree): Do not inadvertedly invalidate bend bboxes
...
This fixes a crash that was happening when undoing autoroutings.
Bends are still not restored correctly, I will fix that soon.
2025-07-16 00:22:57 +02:00
Mikolaj Wielgus
48fe63a387
feat(geometry/with_rtree): Assert R-tree element removal to be always successful
2025-07-15 23:04:35 +02:00
Mikolaj Wielgus
ab4ba4e0b8
refactor(topola-egui): Split out some display code to new file, displayer.rs
2025-07-15 15:40:45 +02:00
Mikolaj Wielgus
800db3d4c0
refactor(topola-egui): Split some parts of `Viewport` code to methods
2025-07-15 02:13:56 +02:00
Mikolaj Wielgus
6f1abeebd9
test: Fix test failures due to latest commit being botched
2025-07-14 13:40:40 +02:00
Mikolaj Wielgus
43005eb864
feat(autorouter/autorouter): Add presorting by ratline intersection count and length
...
Sadly, this does not work well for the DE-9 to DE-9 test, but it is a
step forward.
2025-07-14 13:26:38 +02:00
Mikolaj Wielgus
0752817538
refactor(autorouter/ratsnest): Split out ratline code to new file, ratline.rs
2025-07-14 13:26:38 +02:00
fogti
bf44fe1e71
Translated using Weblate (German)
...
Currently translated at 100.0% (58 of 58 strings)
Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-07-10 20:51:57 +00:00