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
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
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
Ellen Emilia Anna Zscheile
cf36177097
refactor: don't export modules only containing a single item
2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile
ffb0c94080
refactor(egui::overlay): get rid of constant 'active_layer'
2025-02-02 01:11:29 +01:00
Ellen Emilia Anna Zscheile
ea6df23b95
feat(selection): BBox selection should span all currently visible layers
...
In Via, is_in_layer, `from_layer` and `to_layer` were swapped,
this has been also fixed here.
2025-01-09 18:59:07 +00:00
hakki
7bef759209
chore(egui): filter dsn files on DSN file dialog
2025-01-09 18:30:11 +01:00
Mikolaj Wielgus
babe531f73
feat(egui): move View menu code to actions
2025-01-06 23:40:28 +01:00
Mikolaj Wielgus
ebeaaf04c9
Revert "feat(egui): begin development of `egui-actions` crate"
...
This reverts commit 658e556a4a .
On the second thought, this may be a bad idea because using this crate
on Topola's main library code would pollute it with `egui` code.
2025-01-06 22:42:13 +01:00
Mikolaj Wielgus
658e556a4a
feat(egui): begin development of `egui-actions` crate
...
The purpose of this new crate is to provide a system for managing
actions that can be bound to a key and to derive `egui` menus to invoke
them.
I haven't moved all relevant code from `topola-egui` (in particular,
`Switch` and `Trigger` structs) to this crate yet.
2025-01-06 18:28:56 +01:00
Alain Emilia Anna Zscheile
0cbd3c398a
refactor(drawing,layout): move 'is_node_in_layer' from Layout to Drawing
2025-01-05 22:14:00 +00:00
Alain Emilia Anna Zscheile
c7d50fd79f
refactor(geometry::poly): PolyShape should be equal to Polygon
2025-01-05 22:14:00 +00:00
Alain Emilia Anna Zscheile
740019e2e5
feat(selection): BboxSelectionKind (completely inside vs. merely intersects)
2025-01-05 22:14:00 +00:00
Mikolaj Wielgus
9664f1a31a
fix: get rid of some indeterminism by using B-trees instead of hash maps
...
I have replaced all instances of `HashMap<...>` with `BTreeMap<...>`,
of `HashSet<...>` with `BTreeSet<...>`, and all the uses of the `Hash`
trait with `Ord`.
I have done a few manual tests and found the behavior to be
deterministic between the GUI application launches. However, undoing an
autoroute command and then manually executing it once again continues to
produce variable results. I suppose this is because of some bug in the
code where edits are applied. Hence, the issue
https://codeberg.org/topola/topola/issues/46
is only partially resolved.
2025-01-04 01:56:00 +01:00
Alain Emilia Anna Zscheile
53b964b865
feat: implement bounding box selection ( #139 )
...
Fixes #138
Reviewed-on: https://codeberg.org/topola/topola/pulls/139
Co-authored-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-01-02 22:12:11 +00:00
Alain Emilia Anna Zscheile
1f7c6eafc7
chore(egui/menu_bar): fix nitpicks
2024-12-31 13:36:07 +01:00
Alain Emilia Anna Zscheile
44bcdbc0aa
refactor(egui/menu_bar): remove unused `self` argument
2024-12-31 13:36:07 +01:00
Alain Emilia Anna Zscheile
f454e248d7
refactor(egui/actions): put menu rendering into `actions` module
2024-12-31 13:35:20 +01:00
Alain Emilia Anna Zscheile
b47459b3d7
refactor(egui/action): `into_*` methods instead of wrapping `::new` calls
2024-12-31 12:38:18 +01:00
Mikolaj Wielgus
44c30caafe
chore(licensing): add REUSE license headers to `**.{rs,md,toml}` files
...
I ran the following command in Fish shell:
```
reuse annotate --skip-unrecognised --copyright="Topola contributors" --license="MIT" **.{rs,md,toml}
```
The choice of year 2024 in the copyright statements is intentional.
2024-12-29 22:47:00 +01:00
Mikolaj Wielgus
1567a9a83e
style: rename "squeeze through under bands" to "(...) bends"
...
Everywhere except in translatable strings. I'm not changing these
because I prefer this to be done via Weblate.
2024-12-29 01:43:36 +01:00
Alain Emilia Anna Zscheile
9e0bdb5bc7
refactor: various further refactorings ( #128 )
...
These optimize out unnecessary code duplication, reserve vector capacity beforehand by leveraging `Iterator`s and avoid unnecessary double-lookups into HashMaps.
Reviewed-on: https://codeberg.org/topola/topola/pulls/128
Co-authored-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2024-12-11 14:13:21 +00:00
Mikolaj Wielgus
0184a6537e
feat(egui): have a separate layout color theme for light mode
2024-12-09 14:22:38 +01:00
Mikolaj Wielgus
a5503de0a2
feat(egui): use smaller color theme toggle like in Egui's demo
2024-12-09 14:22:38 +01:00
Mikolaj Wielgus
4b16285143
refactor(egui): move layer colors to `Config`
2024-12-09 14:22:38 +01:00
hakki
5425ac2d3a
egui: fixed typo in build
2024-12-08 13:56:59 +01:00
Mikolaj Wielgus
2337576245
refactor(egui): rename "layers" to "appearance panel"
2024-12-08 02:22:12 +01:00
Alain Emilia Anna Zscheile
0fe23c9c71
build: put `specctra` module into separate crate
2024-12-06 14:38:00 +01:00
Mikolaj Wielgus
848a497991
fix(egui): show ratsnest by default
...
Closes https://codeberg.org/topola/topola/issues/118
2024-12-05 07:47:21 +01:00
Alain Emilia Anna Zscheile
e0de008f51
build/deps(egui): bump icu_experimental to v0.2; replace icu_locid -> icu_locale_core
2024-11-28 21:28:29 +01:00
Alain Emilia Anna Zscheile
070fe2c176
build(egui): depend on icu_{experimental,locid} directly to reduce deps
2024-11-28 17:19:18 +01:00
Alain Emilia Anna Zscheile
cbd3c77821
build/refactor: move secondary crates into 'crates' folder named by crate name
2024-11-20 15:44:02 +01:00