Commit Graph

725 Commits

Author SHA1 Message Date
Ellen Emilia Anna Zscheile 26df8348ac refactor(geometry/edit): GeometryEdit shouldn't know about PrimitiveIndex 2025-03-31 02:28:56 +02:00
Ellen Emilia Anna Zscheile ccd697f276 feat(geometry/edit): impl ApplyGeometryEdit for GeometryEdit 2025-03-31 02:28:56 +02:00
Ellen Emilia Anna Zscheile 22460c75f7 refactor(DrawingException): factor out extraction of ghost+obstacle 2025-03-31 02:27:56 +02:00
Ellen Emilia Anna Zscheile 566949d4c1 refactor(interactor): use enum_dispatch for ActivityStepper 2025-03-31 02:27:06 +02:00
Ellen Emilia Anna Zscheile 822bba8fde refactor(drawing): more aggressive out-factoring in update_this_and_outward_bows 2025-03-29 16:00:24 +01:00
Ellen Emilia Anna Zscheile da6b825ee7 refactor(drawing): deduplicate code in update_this_and_outward_bows 2025-03-29 15:53:19 +01:00
Ellen Emilia Anna Zscheile c01c8046bb chore: cargo fmt 2025-03-25 23:06:04 +01:00
Ellen Emilia Anna Zscheile 670ddbe1f7 chore: apply clippy fixes 2025-03-25 00:17:57 +01:00
Ellen Emilia Anna Zscheile 13f2400c45 refactor(drawing): simplify traits 2025-03-22 04:06:27 +00:00
Ellen Emilia Anna Zscheile a836189086 refactor: simplify interface of NavcordStepper 2025-03-22 04:06:27 +00: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 a39546f0c9 fix(RouteStepper): borrowing mixup 2025-02-15 13:46:16 +01:00
Ellen Emilia Anna Zscheile a7c8474153 fix(RouteStepper): proper undo in case of failure
Fixes #116
(hopefully)
2025-02-15 13:36:32 +01:00
Ellen Emilia Anna Zscheile bb86aaed2a minimal backend for `planar-brute-embed` topological navmesh generation (#161)
Reviewed-on: https://codeberg.org/topola/topola/pulls/161
Co-authored-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Ellen Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2025-02-15 00:00:15 +00:00
Ellen Emilia Anna Zscheile 0fde34204f refactor(drawing,geometry): move GetLayer from drawing::graph to geometry 2025-02-10 11:30:54 +01:00
Ellen Emilia Anna Zscheile 61c7b5450f refactor(Retag): only implement trait once, Index should be associated type 2025-02-10 11:29:08 +01:00
Ellen Emilia Anna Zscheile 1e690ace11 refactor(drawing): factor out common {Bend,Dot,Seg}Weight fields 2025-02-10 11:29:08 +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 758677970a chore: allow unused_must_use (we didn't yet get around to fix that) 2025-02-10 11:14:13 +01:00
Ellen Emilia Anna Zscheile 67c4933b09 docs(drawing::loose): document how 'prev_loose' works 2025-02-02 23:53:21 +00:00
Ellen Emilia Anna Zscheile 5dab7d9100 refactor(navcord): inline 'binavvertex', 'maybe_cw' helpers 2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile ba8aa2fe5a refactor(NavcordStepper): struct already stores 'width', don't pass it as argument 2025-02-02 22:03:12 +00: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 2087e76dfe refactor(drawing::guide): turn Guide into a trait 2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile bcb0c4ad5c refactor(drawing::collect): turn Collect into a trait 2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile 90544c12ed refactor(router::navcorder): turn Navcorder into a trait 2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile 1d11011133 refactor(router::draw): turn Draw into a trait 2025-02-02 22:03:12 +00:00
Ellen Emilia Anna Zscheile 869d63f7c0 fix(navmesh): NavvertexIndex debug output should state what it is 2025-02-02 22:30:37 +01: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 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
Ellen Emilia Anna Zscheile 3201df50bd Revert "feat(math): introduce dedicated data type for normalized angles"
This reverts commit b4fe7006b7.

The reverted commit introduced an autorouter regression, observable
in 4x_3rd_order_smd_lc_filters test using egui (see Matrix chat).
2025-01-09 01:05:23 +01:00
Alain Emilia Anna Zscheile 344d892ae0 chore,docs(math): rename 'cross_product' to 'perp_dot_product', add some documentation 2025-01-08 16:19:24 +00:00
Alain Emilia Anna Zscheile b4fe7006b7 feat(math): introduce dedicated data type for normalized angles 2025-01-08 16:19:24 +00:00
Alain Emilia Anna Zscheile 4529ac1ba3 refactor(math): put tangents stuff into separate module 2025-01-08 16:19:24 +00:00
Alain Emilia Anna Zscheile c9b5c39b3d refactor(geometry): reduce unnecessary trait bounds on Geometry impl, and don't use Getter 2025-01-07 21:11:51 +00:00
Alain Emilia Anna Zscheile 17ea07ab7b refactor(geometry): Access*Weight shouldn't take a generic arg; impl automatically 2025-01-07 21:11:51 +00:00
Alain Emilia Anna Zscheile a67f8ea052 refactor(geometry): SetOffset should inherit from GetOffset 2025-01-07 21:11:51 +00:00
Alain Emilia Anna Zscheile 699bd58949 refactor(geometry): merge GetPos and SetPos 2025-01-07 21:11:51 +00:00
Alain Emilia Anna Zscheile 9bb0d34bc8 refactor(layout): Poly & Via only use Drawing (instead of Layout), so only pass that 2025-01-05 22:14:00 +00: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 59154c380f fix(BboxSelection): make intersection calculations against Polygons more accurate 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 fae1f4d7bc refactor(layout,geometry): Layout::node_bbox(...) → AccessShape::bbox(Layout::node_shape(...), 0.0) 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 d88ba19e2b feat(graph): make indices serializable 2025-01-03 00:49: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
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