Commit Graph

24 Commits

Author SHA1 Message Date
Mikolaj Wielgus 7c4bc87301 refactor(drawing/primitive): Rename Primitive<...> to PrimitiveRef<...> with its variants 2025-09-15 22:42:45 +02:00
Ellen Emilia Anna Zscheile 864cf9085a fix(drawing/band): BandTermsegIndex computation should be fallible
Fixes #221.
2025-05-26 14:51:23 +02:00
Ellen Emilia Anna Zscheile 56cc737b82 fix(autorouter/autoroute): Only route each pin-pin connection at most once
Fixes #219.
2025-05-26 14:17:11 +02:00
Mikolaj Wielgus b75101cb83 fix(router/router): Replace LoS-based A* termination with correctly searched one 2025-05-21 00:29:13 +02:00
Ellen Emilia Anna Zscheile 83d9fce38c fix(geometry/compound): rename CompoundEntryKind -> CompoundEntryLabel 2025-04-30 14:18:22 +02:00
Ellen Emilia Anna Zscheile 861869ab7c refactor(geometry): introduce CompoundEntryKind to suppport entry metadata
example usages would be marking the apex of a polygon explicitly,
or marking the nodes of a polygon which are part of the convex hull

- make ManageCompounds more generic
- removes unnecessary bounds on handles/refs
2025-04-30 14:11:31 +02:00
Ellen Emilia Anna Zscheile 670ddbe1f7 chore: apply clippy fixes 2025-03-25 00:17:57 +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
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
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
Alain Emilia Anna Zscheile ba41ff6837 refactor: get rid of unnecessary bounds on struct generics 2024-12-12 16:38:26 +01:00
Alain Emilia Anna Zscheile 697b637205 chore: fix clippy error by temporarily allowing it 2024-10-01 23:39:36 +02:00
Mikolaj Wielgus fcffb76de4 autorouter: create new command: Remove Selected Bands 2024-07-25 01:46:54 +02:00
Mikolaj Wielgus 3bf4d2cdb1 autorouter,board: use both band uids and band termsegs 2024-07-24 02:27:11 +02:00
Mikolaj Wielgus f7126dfa33 egui,autorouter: implement selecting bands 2024-07-23 13:36:57 +02:00
Mikolaj Wielgus 5da6ec4463 drawing: create methods for obtaining UIDs for bands 2024-07-23 02:03:55 +02:00
Mikolaj Wielgus 95c1c0b8b9 drawing: use shared band traversal code 2024-07-23 00:02:20 +02:00
Mikolaj Wielgus ca27804c64 drawing: move band length measurement to new band refobject 2024-07-21 16:45:36 +02:00
Mikolaj Wielgus 57c970e22e drawing: obtain `HeadRef` via new trait for abstract reference objects 2024-07-21 14:49:43 +02:00
Mikolaj Wielgus d4a310a5c0 graph: disambiguate naming of different kinds of indices
Disambiguate between node indices and (teir inner) petgraph indices.
Rename "band index" to "band first seg index", as we identify bands by
teir first segs. Rename "trianvertex index" and "navvertex index"
respectively to "trianvertex node index" and "navvertex node index", as
these point to nodes on the geometry graph and only indirectly to
vertices on the vertex graph.
2024-06-18 15:30:33 +02:00
Mikolaj Wielgus 86d2555b36 autorouter: accessibly store pin-pairs between which routed bands are 2024-06-05 20:26:23 +02:00
Mikolaj Wielgus 1c09483873 autorouter: implement simple undo (untested, not in GUI yet) 2024-05-14 14:22:47 +02:00
Mikolaj Wielgus c006dcfd47 drawing: create `BandIndex` object to pass around bands 2024-05-14 00:28:32 +02:00