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
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