Mikolaj Wielgus
0702b7eb8c
refactor(router/astar): Use getters instead of `pub` members
2025-06-12 16:45:07 +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
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
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
Ellen Emilia Anna Zscheile
c74e593c2d
feat(planar-incr-embed): logged edge count of normal edges only
2025-05-01 23:29:25 +02:00
Ellen Emilia Anna Zscheile
7799c50829
feat(math): implement search for boundaries of partitions in cyclic partitioned lists.
...
e.g. find the bounds of false, true in [false, true, true, false, false]
under the condition that the blocks in partitions of a single value are connected,
meaning when considering the list as cyclic, there are at most 2 blocks (for value true, false).
This implements only the binary case.
Exponential search was suggested by Harold Aptroot <@harold@mastodon.gamedev.place>
Example/motivating use case: detecting which parts of the exterior of a Polygon
face towards a point, and which parts don't, in particular finding the (extremal) points
contained in the tangents. This use case is implemented in `poly_ext_tangent_points`.
Signed-off-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-05-01 15:28:20 +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
Ellen Emilia Anna Zscheile
f4f8971662
chore(planar-incr-embed): make some utilities public for downstream reuse
2025-04-25 13:25:28 +02:00
Ellen Emilia Anna Zscheile
a6f86f488c
feat(planar-incr-embed): add convenience method to remove paths from navmesh
2025-04-25 13:23:47 +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
3a2c9deff0
feat(planar-incr-embed): make PmgAstar's evaluate_navmesh interface way more ergonomic
2025-04-10 22:16:59 +02:00
Ellen Emilia Anna Zscheile
bb1cfc76d9
fix(planar-incr-embed): discover all possible paths, including the variants re: weak entries
2025-04-10 22:16:59 +02:00
Ellen Emilia Anna Zscheile
e20c9aa3d6
feat(specctra-core/mesadata, layout): make `Layout` clonable
...
This change also propagates to `SpecctraMesadata`, which is a bit unfortunate,
because the code that needs this will never mutate the mesadata,
wrapping it in an `Arc` would be a possible alternative.
2025-03-31 02:30:26 +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
8e3be44e18
feat(pie/PmgAstar): support threading a context along
2025-03-23 10:42:11 +01: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
ae40efbfa2
feat(specctra_derive): implement for enums containing unnamed fields
2025-03-10 04:10:45 +00: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
6eb941a137
feat: merge planar-brute-embed into the topola monorepo
...
- feat: use OrderedPair instead of custon BandName/BandUid (note: changes ordering of BandUid)
- fix(crates): rename planar-brute-embed to planar-incr-embed
2025-02-16 18:31:31 +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
3bd1935f41
deps: make 'log' a workspace dependency
2025-02-10 00:15:53 +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
f2969decd0
feat/debug: make core::fmt::Debug output easier to read
2025-02-02 22:01:25 +01: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
58876c996a
chore: run cargo upgrade
2025-01-11 10:46:34 +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
a16eba8891
chore(cli): added expect to catch errors during Session File write
2025-01-09 18:30:19 +01:00
hakki
7bef759209
chore(egui): filter dsn files on DSN file dialog
2025-01-09 18:30:11 +01:00
hakki
51389c8e2a
chore(cli): more meaningful info about error during dsn parse
2025-01-09 16:36:36 +00: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