Mikolaj Wielgus
0e12f32db4
chore: Correct copyright lines (MIT, not MIT OR Apache-2.0)
2025-09-26 00:56:08 +02:00
Mikolaj Wielgus
d74a06b2ea
feat(topola-egui): Hide ratlines that were already routed
2025-09-22 15:03:14 +02:00
Mikolaj Wielgus
3078d9d546
feat(topola-egui): Highlight node index of the obstacling primitive
2025-09-21 14:40:26 +02:00
Mikolaj Wielgus
d75c73b540
feat(topola-egui): Add option to display primitive indices on debug overlay
2025-09-21 13:09:48 +02:00
Mikolaj Wielgus
7c4bc87301
refactor(drawing/primitive): Rename Primitive<...> to PrimitiveRef<...> with its variants
2025-09-15 22:42: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
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
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
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
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
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
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
68d9844d0d
feat(topola-egui): Add progress bar for the currently routed ratline
...
The capability to measure progress will later be useful to choose slower
but better optimization strategies if more time is available.
2025-07-10 22:38:46 +02:00
Mikolaj Wielgus
29dc59df04
refactor(router/navmesh): Split out navmesh triangulation into "prenavmesh" module
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
9742740b9e
refactor(router/navmesh): Factor out some repeating code
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
3e322d7b34
feat(topola-egui): Add showing of triangulation constraints to debug overlay
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
f3245b9607
feat(router/navmesh): Add constraint edges for loose segs
...
This does not work entirely correctly. I will investigate in subsequent
commits.
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
b25ad863ba
refactor(autorouter/invoker): Merge debug overlay data traits into one trait
...
The name of this new trait shall be `GetDebugOverlayData`.
2025-07-06 23:09:08 +02:00
Ellen Emilia Anna Zscheile
d3dc826be4
feat: Implement TopoNavmesh DualOuter-DualOuter extraction
...
This also fixes a sign bug in LineIntersection calculation
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
Mikolaj Wielgus
6f20994dab
feat(topola-egui): Add checkbox to hide pathfinding scores
2025-06-18 18:07:43 +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
0702b7eb8c
refactor(router/astar): Use getters instead of `pub` members
2025-06-12 16:45:07 +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
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
Ellen Emilia Anna Zscheile
bdebdacd8a
chore: Fix 'unused' imports/code warnings
2025-05-17 12:45:03 +02: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
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
776ffb00ad
chore: bump dependencies
2025-05-12 19:30:27 +02:00
Mikolaj Wielgus
cea96b20a0
docs(topola-egui): Explain some parts of app's code
2025-05-04 22:54:11 +02:00
Mikolaj Wielgus
f7cd817457
feat(autorouter/invoker): Create trait to display debug information on navmesh
2025-05-01 01:59:31 +02:00
Mikolaj Wielgus
b000f2b7d8
refactor(math): Replace `cw` booleans with `RotationSense` enums
...
The term "cw" (clockwise) was somewhat cryptic, using a more verbose
term improves readability.
2025-04-29 13:58:49 +02:00
Mikolaj Wielgus
640247a675
fix(topola-egui): clamp timestep slider to 0.001-3.0 instead of 0.0-3.0
...
Timestep should never be set to 0 because this freezes the GUI if the
execution takes a long time.
Of course, this solution assumes that any lengthy operation is split
into sufficiently fine steppable steps.
Fixes https://codeberg.org/topola/topola/issues/203
2025-04-26 04:02:06 +02:00
Mikolaj Wielgus
b736aa2d7d
refactor(layout::poly): use `MakeRef<...>` to obtain poly's ref-struct
2025-04-22 21:59:45 +02:00
Ellen Emilia Anna Zscheile
bf1addbdaf
chore: fix some more clippy warnings
2025-03-31 01:58:34 +02:00
Ellen Emilia Anna Zscheile
112cc0686d
feat(egui): partially disable menus again
...
The upstream bug got fixed: https://github.com/emilk/egui/issues/4774#event-16792829596
2025-03-18 04:37:48 +01:00
Mikolaj Wielgus
f7ac667e1d
chore(cargo): bump `icu_experimental` dependency version to 0.3.0-beta2
...
This should fix the CI failure.
2025-03-10 04:35:34 +01:00
Mikolaj Wielgus
946afc413d
chore(cargo): bump `icu_locale_core` dependency version to 2.0.0-beta2
2025-03-10 03:10:06 +01:00
Ellen Emilia Anna Zscheile
da3be763c6
feat(overlay,viewport): generation and rendering of topological navmesh
2025-03-04 02:47:04 +01:00
Ellen Emilia Anna Zscheile
2e4b3b52ab
chore: cargo fmt
2025-02-10 11:28:19 +01:00
Ellen Emilia Anna Zscheile
e1d875ae72
chore: fix most warnings
2025-02-10 11:25:55 +01:00
Ellen Emilia Anna Zscheile
65c8dee0f2
deps: bump dependencies of topola-egui
2025-02-10 00:20:02 +01:00