Commit Graph

51 Commits

Author SHA1 Message Date
Mikolaj Wielgus f94733e0f0 feat(topola-egui): Add option to display bend endpoint tangents
This is just to be able to debug navmesh pruning.
2025-11-30 22:25:15 +01:00
Mikolaj Wielgus b9b52fb977 feat(topola-egui): Display origin-destination by default 2025-11-29 16:02:41 +01:00
Mikolaj Wielgus 8216d3a907 feat(topola-egui): Add sliders to set autorouting timeouts (not fully translated yet) 2025-11-04 20:02:34 +01:00
Mikolaj Wielgus 0523fb53df feat(topola-egui): Make step rate slider go up to 1000 steps/s 2025-11-03 02:10:02 +01:00
Mikolaj Wielgus 7b66db1672 feat(topola-egui): Add checkboxes to toggle displaying obstacles and ghosts
Disabled showing them by default.
2025-10-30 19:01:34 +01:00
Mikolaj Wielgus 55ed4bf4cc feat(topola-egui): Replace "update timestep" with "step rate"
The term "timestep" is usually used to refer to a time step on some
internal simulation time scale that is separate from the real time.
There is however no time scale other than real time in Topola.
2025-10-30 05:18:05 +01:00
Mikolaj Wielgus c163980073 feat(topola-egui): Add checkbox to toggle fixing of step rate 2025-10-29 16:05:56 +01:00
Mikolaj Wielgus 04293d9e4a feat(topola-egui): Move debug-only view options to new menubar's menu "Debug" 2025-10-29 03:53:18 +01:00
Mikolaj Wielgus d50e346706 feat(autorouter/autorouter): Remove "compare detours"
This was a time-expensive way to presort ratlines, it's much faster to
instead operate on ratline line segments.
2025-10-22 01:44:52 +02:00
Mikolaj Wielgus cd73c766a5 refactor(topola-egui): Move storing principal layer to planar autoroute options
I've done some struct renaming while at it.
2025-10-13 21:38:47 +02:00
Mikolaj Wielgus 43f8d69281 fix(topola-egui): Don't filter out translayer ratlines 2025-10-08 23:00:04 +02:00
Mikolaj Wielgus 8235c66c7e fix(autorouter/anterouter): Correctly calculate fanout lengths 2025-10-08 02:18:56 +02:00
Mikolaj Wielgus a3521e7286 feat(autorouter/anterouter): Add option to set fanout clearance 2025-10-07 22:37:50 +02:00
Mikolaj Wielgus 9a5b2095d5 feat(autorouter/autorouter): Implement germ of multilayer autorouting 2025-09-27 15:45:10 +02:00
Mikolaj Wielgus d74a06b2ea feat(topola-egui): Hide ratlines that were already routed 2025-09-22 15:03:14 +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 5fd4926fb6 feat(topola-egui): Display guide-bitangents on debug overlay 2025-08-16 01:17:29 +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 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 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
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 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
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 cea96b20a0 docs(topola-egui): Explain some parts of app's code 2025-05-04 22:54:11 +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
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 e1d875ae72 chore: fix most warnings 2025-02-10 11:25:55 +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 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
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
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
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