Commit Graph

1261 Commits

Author SHA1 Message Date
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
Mikolaj Wielgus f9b1cc2cbf refactor(autorouter/invoker): Add default impls. to invoker's stepper traits 2025-05-16 17:28:10 +00:00
Mikolaj Wielgus 53f937f14f feat(topola-egui): Display A*'s g-scores and f-scores 2025-05-16 17:28:10 +00:00
Mikolaj Wielgus 97b1315eee refactor(autorouter/invoker): Expose getter for whole A* stepper, not just navmesh
Besides owning the navmesh, the A* stepper stores g-scores and f-scores,
displaying which will be helpful for debugging, so we want to be able to
access the whole A* stepper instead of only the navmesh.
2025-05-16 17:28:10 +00:00
Mikolaj Wielgus 7d5da2c797 docs(router/astar): Explain the meaning of every continue status 2025-05-16 17:28:10 +00:00
Mikolaj Wielgus a0ab7e2818 refactor(router/astar): Have separate statuses for discarded probes and skipped visits
This is mostly to improve readability. Since we don't check the values
of the continue statuses anywhere anyway, this doesn't result in any
changes to code outside of the router/astar module.
2025-05-16 17:28:10 +00:00
Ellen Emilia Anna Zscheile b5b14e6329 feat(topola-egui): Allow using Shift+{arrow keys} to scroll viewport using keyboard
Fixes #188.
2025-05-15 16:55:13 +02:00
Ellen Emilia Anna Zscheile 7d59ffd5be docs: Add screenshot of illustration of polygon tangents
Signed-off-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-05-14 12:49:09 +02:00
Ellen Emilia Anna Zscheile 7faac709e0 docs: Add screenshot of illustration for pie' closed curve
Signed-off-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-05-13 14:29:42 +02:00
Mikolaj Wielgus 1fe87635bf chore: Run `committed HEAD` in addition to `committed develop..HEAD` in CI
This will make the CI detect malformed commit messages pushed straight
to the development branch without a PR.
2025-05-13 00:33:27 +02:00
Ellen Emilia Anna Zscheile 776ffb00ad chore: bump dependencies 2025-05-12 19:30:27 +02:00
Ellen Emilia Anna Zscheile 5f19624d4e docs(stepper): fix broken internal link in docs 2025-05-12 19:08:12 +02:00
Mikolaj Wielgus 7dc275969c refactor(router/astar): Rename `Astar<...>` to `AstarStepper<...>`
Since it is a stepper, and we append -`Stepper` to identifiers denoting
types that are steppers.
2025-05-12 16:58:06 +02:00
Mikolaj Wielgus 0df68ee80c docs(stepper): Explain how stepper traits and navcord work
Navcord is special because we advance its state in a way that is similar
to how steppers are stepped but it actually is not a stepper.
2025-05-12 16:58:02 +02:00
Mikolaj Wielgus 47371fdf3f refactor(router/navcord): Make it clear that navcord is not a stepper
Rename `NavcordStepper<...>` to `Navcord<...>. Since the navcord is not
actually considered a true stepper, having the word "stepper" in its
identifier would confuse anyone new to source-diving Topola's code.

Rename Navcord's `.step(...)` to `.step_to(...)` to make it clear
that this is not just a step like in a stepper, but a step to a some
specified position.
2025-05-12 00:45:51 +02:00
Ellen Emilia Anna Zscheile e448f86374 refactor(drawing): make traits more strict 2025-05-06 22:22:57 +00:00
Mikolaj Wielgus 873d9a84ab fix(drawing/drawing): Prevent self-intersecting loops on band draw finish 2025-05-05 22:38:06 +00:00
Mikolaj Wielgus c849b6ff1d fix(drawing/drawing): Don't check initial canes for same-net collision 2025-05-05 22:38:06 +00:00
Mikolaj Wielgus 9bfed2d28e docs(drawing/drawing): Explain difference between infringements and collisions 2025-05-05 22:38:06 +00:00
Mikolaj Wielgus 680a813a33 fix(drawing/drawing): Prevent self-intersecting band loops from forming
Fixes https://codeberg.org/topola/topola/issues/205
2025-05-05 22:38:06 +00:00
Mikolaj Wielgus 6175f7aec2 refactor(drawing/drawing): Ignore infringees using filter predicate instead of slice 2025-05-05 22:38:06 +00:00
Mikolaj Wielgus cea96b20a0 docs(topola-egui): Explain some parts of app's code 2025-05-04 22:54:11 +02:00
Ellen Emilia Anna Zscheile 14287ca814 fix(interactor/interaction): fix warnings about unused arguments 2025-05-02 14:32:00 +02:00
Ellen Emilia Anna Zscheile 48efd5d3d9 feat(geometry/geometry): provide lookup of all rails around a core 2025-05-02 14:31:18 +02:00
Ellen Emilia Anna Zscheile 792f9b56ea chore(planar-incr-embed): provide `remove_path` also for plain `edge_paths` 2025-05-02 14:29:49 +02:00