Commit Graph

1335 Commits

Author SHA1 Message Date
Ellen Emilia Anna Zscheile ed06170db5 feat: Debug print various TopoNavmesh structures / updates
- feat(autorouter/execution): Debug-print the whole TopoNavmesh on completion
- feat(router/ng/poly): Emit log output on route_to_exit success
2025-06-27 15:15:26 +02:00
Ellen Emilia Anna Zscheile a561b278fc feat(router/ng/router): Implementation of the topological router
- feat(autorouter): Prepare for population of planar Topo-Navmesh with existing routes
  See also issue #166.
- feat(topola-egui): Add dialog for topological navmesh layer selection
- feat(router/ng/eval): Optionally restrict set of allowed TopoNavmesh edges
- fix(router/ng/eval): Use poly_ext_handover
2025-06-27 15:15:24 +02:00
Ellen Emilia Anna Zscheile c8848ef269 refactor(topola-egui): Move InteractiveEvent handling from Viewport into Workspace 2025-06-27 06:51:20 +02:00
Ellen Emilia Anna Zscheile c66089bca9 fix(interactor/interactor): Factor out the logic for on-event activity updates 2025-06-27 06:12:38 +02:00
Ellen Emilia Anna Zscheile a4b1b3893c feat: Add interaction stepper for route building 2025-06-27 06:02:05 +02:00
fogti e2aaa932fc
Translated using Weblate (German)
Currently translated at 100.0% (54 of 54 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-06-25 18:14:42 +00:00
Outbreak2096 c1191ad90b
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (54 of 54 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-06-25 18:14:42 +00:00
Mikolaj Wielgus 03ed35cbc4 fix(drawing/drawing): Fix squeezing through under bends by flipping CW/CCW
I don't know what was the original cause of this bug, but this seems to
solve the problem.
2025-06-25 20:11:49 +02:00
Mikolaj Wielgus 868d05ab6f chore: Convert the screencast from WEBM to GIF
Easier to display from Markdown.
2025-06-19 17:32:31 +02:00
Mikolaj Wielgus 019620dc17 chore: Add screencast of topo-navmesh routing 2025-06-19 16:21:49 +02:00
Mikolaj Wielgus 9c7c56aa12 chore: Add navmesh and topo-navmesh screenshots to assets
This is for the June 2025 development update.
2025-06-19 02:39:11 +02:00
Mikolaj Wielgus 6f20994dab feat(topola-egui): Add checkbox to hide pathfinding scores 2025-06-18 18:07:43 +02:00
Ellen Emilia Anna Zscheile 896deb1777 docs(math/polygon_tangents): Fix `CachedPolyExt` doc-comment 2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile 03d85b8566 feat(math/polygon_tangents): Implement polygon handover
Fixes #240
2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile 371d13e7e1 fix(math/polygon_tangents): Fix usual triangle case
See also issue #238.

This does not fix the case where all nodes of the convex hull lie on some tangent.
2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile bbd8d78089 refactor(math/polygon_tangents): Reduce code duplication 2025-06-12 23:33:30 +02:00
Ellen Emilia Anna Zscheile 353ee9a7ab fix(specctra-core): Actually use Keepouts structure 2025-06-12 23:27:52 +02:00
Ellen Emilia Anna Zscheile 9ea058bd0a fix(specctra-core): Proper support for all kinds of keepouts 2025-06-12 20:08:08 +02:00
Mikolaj Wielgus 3ec15db5bc docs(router/thetastar): Add some explanatory comments 2025-06-12 16:45:07 +02:00
Mikolaj Wielgus 1630ed1a45 refactor(router/thetastar): Store edge ids in `Vec<...>` instead of `VecDeque<...>` 2025-06-12 16:45:07 +02:00
Mikolaj Wielgus 437e2f96d1 fix(router/navcord): Correctly take into account length of final termseg 2025-06-12 16:45:07 +02:00
Mikolaj Wielgus d0c304adbd feat(router/thetastar): Implement Theta* search algorithm
Closes https://codeberg.org/topola/topola/issues/121
2025-06-12 16:45:07 +02:00
Mikolaj Wielgus 1fea359a40 refactor(router/astar): Rewrite A* like a more typical state machine 2025-06-12 16:45:07 +02:00
Mikolaj Wielgus 0702b7eb8c refactor(router/astar): Use getters instead of `pub` members 2025-06-12 16:45:07 +02:00
Ellen Emilia Anna Zscheile cfd20ed381 feat: Implement line (segment) intersection check 2025-06-11 16:37:57 +02:00
Ellen Emilia Anna Zscheile 1505513552 feat(drawing/drawing): Store boundaries in Drawing 2025-06-10 15:37:47 +02:00
Ellen Emilia Anna Zscheile 33eb593fe9 fix(specctra-core): Fix boundary parsing
see also https://gitlab.com/kicad/code/kicad/-/blob/master/pcbnew/specctra_import_export/specctra.h, class BOUNDARY
2025-06-07 13:13:49 +02:00
Ellen Emilia Anna Zscheile 3c807b5078 refactor(specctra/design): Resolve image once per component 2025-06-02 22:57:45 +02:00
Ellen Emilia Anna Zscheile 2e84380344 chore(router/draw): Make API of 'extend_head' more ergonomic 2025-06-01 14:02:28 +02:00
Ellen Emilia Anna Zscheile 3ae298e4e9 feat(topola-egui): AppearancePanel active_layer selection should be explicit 2025-06-01 02:16:41 +02:00
Ellen Emilia Anna Zscheile d1bcf22e96 feat(math/polygon_tangents): Add unit tests for triangle case 2025-05-30 21:32:13 +02:00
Ellen Emilia Anna Zscheile eff197d410 chore: Update committed.toml 2025-05-30 21:06:42 +02:00
Ellen Emilia Anna Zscheile c41627b023 chore(math/polygon_tangents): Fix clippy warnings 2025-05-30 21:04:43 +02:00
Ellen Emilia Anna Zscheile 42cf8f3a69 fix(math/cyclic_search): Use classic binary search instead
It is unnecessary to use exponential search here, and the
computation complexity of binary search is easier to understand
and obvious O(log n).
This degrades performance minimally in biased edge cases,
and improves performance in the hopefully common
"roughly half of values are false, and other half is true" case.
2025-05-30 21:04:30 +02:00
Ellen Emilia Anna Zscheile 864cf9085a fix(drawing/band): BandTermsegIndex computation should be fallible
Fixes #221.
2025-05-26 14:51:23 +02:00
Ellen Emilia Anna Zscheile 56cc737b82 fix(autorouter/autoroute): Only route each pin-pin connection at most once
Fixes #219.
2025-05-26 14:17:11 +02:00
Mikolaj Wielgus 8647df026d refactor(geometry/edit): "merge" instead of "apply" edit on another edit
This is just a small terminological distinction.
2025-05-26 02:44:26 +02:00
Mikolaj Wielgus e92864d58b fix(router/astar): Do not panic if navnode visit fails, just skip it
I have renamed some trait functions to make it clearer what they do, and
clarified some comments.
2025-05-25 18:04:18 +02:00
Mikolaj Wielgus 24d119ad04 refactor(router/navmesh): Rename "navvertex" to "navnode"
Easier to pronounce.
2025-05-25 18:01:26 +02:00
Ellen Emilia Anna Zscheile 8d0681c07d fix(topola-egui): Fix click-based selection of pins
- Do intersection calculation between DotShape and Rect=AABB properly
2025-05-21 01:02:12 +02:00
Mikolaj Wielgus 464e8abb89 docs(router/astar): Make some small improvements to docs 2025-05-21 00:29:13 +02:00
Mikolaj Wielgus e79078e971 fix(router/router): Calculate A* navedge cost correctly
The length of the past head depends on what was previously in the same
scan, so it can't be relied on. Instead, we just add the length of the
bend that is immediately before the probe.
2025-05-21 00:29:13 +02:00
Mikolaj Wielgus b75101cb83 fix(router/router): Replace LoS-based A* termination with correctly searched one 2025-05-21 00:29:13 +02:00
Ellen Emilia Anna Zscheile ded1ec8ece fix(router/draw): Undo modification of old cane head on failure 2025-05-20 01:05:05 +02:00
Ellen Emilia Anna Zscheile ee19ae934f fix(drawing/bend): Improve handling of almost equal points in perp_dot_product 2025-05-20 00:13:07 +02:00
Ellen Emilia Anna Zscheile d553fd6ba7 fix(router): attempt to fix autorouter 2025-05-17 16:32:15 +02:00
Outbreak2096 7a246be3a1
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (53 of 53 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/zh_Hans/
2025-05-17 10:45:25 +00:00
fogti 82d78b3a15
Translated using Weblate (German)
Currently translated at 100.0% (53 of 53 strings)

Translation: Topola/Topola
Translate-URL: https://translate.codeberg.org/projects/topola/topola/de/
2025-05-17 10:45:25 +00:00
Ellen Emilia Anna Zscheile bdebdacd8a chore: Fix 'unused' imports/code warnings 2025-05-17 12:45:03 +02:00
Ellen Emilia Anna Zscheile 2394fa6256 feat(geometry/geometry): Add convenience GetPetgraphIndex impls 2025-05-17 02:43:19 +02:00