Mikolaj Wielgus
f4b78749b1
feat(topola-egui): Show shape of infringee in addition to inflated infringer's
2025-09-21 20:22:20 +02:00
Mikolaj Wielgus
50597653ad
refactor(geometry/geometry): Remove `.graph()` and its remaining usages
...
This will allow us to store the dots, segs, bends differently than currently.
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus
e0cfc521ef
refactor(geometry/geometry): Replace `NodeIndex<usize>` with just `usize`
...
This is a step towards ceasing to use Petgraph as internal storage for
geometry.
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus
6a2102e0a2
refactor(graph): Rename `GetPetgraphIndex` to `GetIndex`
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus
7c4bc87301
refactor(drawing/primitive): Rename Primitive<...> to PrimitiveRef<...> with its variants
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus
eb0ee25565
fix(drawing/drawing): Don't infringe upon wraparound limbs and its fillets' limbs
...
Sadly, this degrades performance considerably. But we will improve it later.
2025-09-03 01:00:18 +02:00
Mikolaj Wielgus
9f7e10bc03
refactor(drawing/drawing): Add filtering predicate also for `.insert_cane(...)`
2025-09-02 19:58:30 +02:00
Mikolaj Wielgus
3ddf382325
refactor(drawing/drawing): Remove `*_with_infringement_filtering` suffix
...
Having a filter predicate is useful too often to keep two sets of
methods.
2025-09-02 19:46:39 +02:00
Mikolaj Wielgus
3e466960fa
feat(router/prenavmesh): Have fillets as prenavnodes instead of long vertex chains
2025-08-31 14:34:28 +02:00
Mikolaj Wielgus
791291b82e
feat(router/draw): Try to add canes before trying to squeeze them through
2025-08-09 21:08:10 +02:00
Ellen Emilia Anna Zscheile
4fea23c9ac
chore: Fix warnings about lifetime annotations
2025-07-17 12:33:31 +02:00
Ellen Emilia Anna Zscheile
59473c36c8
refactor(layout/layout): Put bands_between_* methods into separate file collect_bands.rs
2025-06-28 11:32:38 +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
Ellen Emilia Anna Zscheile
864cf9085a
fix(drawing/band): BandTermsegIndex computation should be fallible
...
Fixes #221 .
2025-05-26 14:51:23 +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
Mikolaj Wielgus
873d9a84ab
fix(drawing/drawing): Prevent self-intersecting loops on band draw finish
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
187f06a9ac
chore(layout): move most of 'add_poly_with_nodes' method into poly.rs
2025-04-30 14:11:31 +02:00
Ellen Emilia Anna Zscheile
8a66ece14c
feat(layout): cache convex hull on polygon initialization
2025-04-30 14:11:31 +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
346477f498
chore(layout): remove unused 'add_poly_fixed_*' methods
2025-04-22 22:51:51 +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
122ff0122f
fix(board): make Poly' apex generation non-lazy
...
- insert polygon parts before polygon compound
2025-04-17 15:03:14 +02: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
670ddbe1f7
chore: apply clippy fixes
2025-03-25 00:17:57 +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
1e690ace11
refactor(drawing): factor out common {Bend,Dot,Seg}Weight fields
2025-02-10 11:29:08 +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
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
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
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
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
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
d6fe67a373
feat(board,layout,drawing): implement edit recording
...
Not stored in the undo/redo objects yet.
2024-11-13 00:00:56 +00:00
hakki
de0ba42e18
layout: general info about the module
2024-10-22 15:39:27 +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
1a6340c6f1
chore: remove unused imports
2024-10-01 09:54:46 +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