Mikolaj Wielgus
c849b6ff1d
fix(drawing/drawing): Don't check initial canes for same-net collision
2025-05-05 22:38:06 +00:00
Mikolaj Wielgus
9bfed2d28e
docs(drawing/drawing): Explain difference between infringements and collisions
2025-05-05 22:38:06 +00:00
Mikolaj Wielgus
680a813a33
fix(drawing/drawing): Prevent self-intersecting band loops from forming
...
Fixes https://codeberg.org/topola/topola/issues/205
2025-05-05 22:38:06 +00:00
Mikolaj Wielgus
6175f7aec2
refactor(drawing/drawing): Ignore infringees using filter predicate instead of slice
2025-05-05 22:38:06 +00: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
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
Ellen Emilia Anna Zscheile
f6a196aeca
fix(drawing): make update_this_and_outward_bows fail graceful (with temporary fix)
2025-04-17 22:36:10 +00:00
Ellen Emilia Anna Zscheile
77969952ff
refactor(geometry/edit): GeometryEdit shouldn't know about PrimitiveIndex
2025-04-08 02:06:57 +00: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
22460c75f7
refactor(DrawingException): factor out extraction of ghost+obstacle
2025-03-31 02:27:56 +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
13f2400c45
refactor(drawing): simplify traits
2025-03-22 04:06:27 +00: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
0fde34204f
refactor(drawing,geometry): move GetLayer from drawing::graph to geometry
2025-02-10 11:30:54 +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
e1d875ae72
chore: fix most warnings
2025-02-10 11:25:55 +01: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
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
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
699bd58949
refactor(geometry): merge GetPos and SetPos
2025-01-07 21:11:51 +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
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
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
Alain Emilia Anna Zscheile
5a26c02b4e
refactor(ApplyGeometryEdit): make 'apply' take 'GeometryEdit' by reference
2024-12-08 16:20:05 +00:00
Mikolaj Wielgus
9b1b135715
feat(board,layout,drawing): implement edit applying interface
2024-11-28 06:17:29 +01:00
Mikolaj Wielgus
1f55e92026
refactor(geometry): move edit code to its own file
2024-11-25 22:42:25 +01:00
Alain Emilia Anna Zscheile
9dad83d221
fix(contracts,drawing): geometry_with_rtree -> recording_geometry_with_rtree
...
Fixes #105 .
2024-11-20 15:41:22 +01:00
Mikolaj Wielgus
d6fe67a373
feat(board,layout,drawing): implement edit recording
...
Not stored in the undo/redo objects yet.
2024-11-13 00:00:56 +00:00
Mikolaj Wielgus
6104e761d2
refactor: autogenerate getters with `derive-getters` crate
2024-10-11 18:43:15 +02:00
Alain Emilia Anna Zscheile
01deaa4b12
build(contracts): use contracts-try v0.7 from crates.io
...
`contracts-try` is now developed at
https://codeberg.org/topola/contracts-try and was extracted
from this repo, and rebased upon the original
crate sources to ensure proper attribution.
This removes the `vendored` directory.
2024-10-06 00:18:56 +02:00
Alain Emilia Anna Zscheile
5e3ccf2560
chore: cargo fmt
2024-10-01 20:50:38 +00:00
Alain Emilia Anna Zscheile
f653a96eb0
chore: trivial fixes of clippy warnings
2024-10-01 20:50:38 +00:00
Alain Emilia Anna Zscheile
1a6340c6f1
chore: remove unused imports
2024-10-01 09:54:46 +02:00
Alain Emilia Anna Zscheile
c42eab0126
vendored/contracts: fix overly verbose type annotations for enum results
...
This fixes issue #15 .
2024-09-28 00:38:16 +02:00
Mikolaj Wielgus
4d0c38664e
router: have a binavvertex on each bend
2024-08-31 01:37:27 +02:00
Mikolaj Wielgus
f7f2e8ea49
autorouter: if band removal fails, propagate error instead of panicking
2024-08-30 16:32:37 +02:00
Mikolaj Wielgus
2105e8c7cf
drawing: rename "rails" and "wraparoundables" to "gears"
2024-08-29 05:24:05 +02:00
Mikolaj Wielgus
3bf4d2cdb1
autorouter,board: use both band uids and band termsegs
2024-07-24 02:27:11 +02:00
Mikolaj Wielgus
5da6ec4463
drawing: create methods for obtaining UIDs for bands
2024-07-23 02:03:55 +02:00
Mikolaj Wielgus
3fd31746af
drawing: make not having infringables the default when adding canes
...
The previous commit only did it for inserted canes.
2024-07-09 18:56:34 +02:00
Mikolaj Wielgus
1c07eb96ac
drawing: for now, make adding canes have no infringables
2024-07-09 17:01:29 +02:00
Mikolaj Wielgus
806742736a
cleanup: get rid of `*Trait` names for traits, use verbs and sentences
2024-07-03 13:40:37 +02:00
Mikolaj Wielgus
b1f60847b3
drawing: move head length measurement methods to new refstruct
2024-07-03 03:37:14 +02:00
Mikolaj Wielgus
1706d5ae8c
drawing: add invariant contract for pairwise non-infringement of looses
2024-06-24 16:36:05 +02:00
Mikolaj Wielgus
c3fe91aabe
drawing: split finding infringers into multiple methods
2024-06-24 13:55:46 +02:00