Mikolaj Wielgus
dd8a4c5808
fix(autorouter/conncomps): Take into account vias when computing connected components
2025-10-19 22:31:16 +02:00
Mikolaj Wielgus
10dc1a86aa
refactor(layout/layout): Add method to retrieve fixed dot's via (not used yet)
2025-10-19 20:51:44 +02:00
Mikolaj Wielgus
2f7cee62a6
fix(autorouter/anterouter): Use correct ratline principal layer instead of layer 0
2025-10-17 23:21:32 +02:00
Mikolaj Wielgus
64a519420f
fix(autorouter/anterouter): Remove fanout if seg addition fails
2025-10-17 22:26:07 +02:00
Mikolaj Wielgus
c630abcdc1
feat(autorouter/anterouter): Anteroute fanouts farther than other-layer obstacles
2025-10-07 13:28:23 +02:00
Mikolaj Wielgus
8095c3a89a
feat(autorouter/anterouter): Don't anteroute fanout vias inside polys
2025-10-06 13:18:19 +02:00
Mikolaj Wielgus
26ed61ad4d
feat(autorouter/anterouter): Anteroute fanout segs to fanout vias
2025-10-03 15:55:58 +02:00
Mikolaj Wielgus
2ebd7ce82d
feat(autorouter/anterouter): Fanout only in cardinal directions
...
This works around the falsely positively fillet exclusions our current
navmesh creation method causes.
2025-10-03 13:12:35 +02:00
Mikolaj Wielgus
9a5b2095d5
feat(autorouter/autorouter): Implement germ of multilayer autorouting
2025-09-27 15:45:10 +02:00
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
4a057d3499
fix(math/mod): Move code pertaining to circles to new file, circle.rs
2025-08-29 13:36:48 +02:00
Mikolaj Wielgus
310e983b1d
refactor(drawing/drawing): Move infringement and collision detection to drawing/query
2025-08-25 02:23:02 +02:00
Mikolaj Wielgus
ca4a2d1cbf
refactor(drawing/query): Rename collect.rs to query.rs, change trait to direct impl
2025-08-24 22:31:10 +02:00
Mikolaj Wielgus
191e646d68
refactor(math/line): Rename `NormalLine` to `LineInGeneralForm`
...
The previous name sounded as if it was a normal (to some surface), which
is not the case.
2025-08-12 20:01:16 +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
ff03083d65
chore(math/mod): Rename 'beam' to 'ray' in intersection functions
2025-06-28 23:03:09 +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
e74f5e009a
fix(layout/poly): merge all the iterations over nodes in 'add_poly_with_nodes_intern'
2025-04-30 14:11:31 +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
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
cf36177097
refactor: don't export modules only containing a single item
2025-02-02 22:03:12 +00: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
699bd58949
refactor(geometry): merge GetPos and SetPos
2025-01-07 21:11:51 +00:00