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
b50e58b0fa
feat(autorouter/ratsnest): Have one terminating dot for each layer of ratvertex
...
Some routes projects still crash while autorouting, but we are
progressing.
2025-09-29 18:22:56 +02:00
Mikolaj Wielgus
da37fbe2ec
feat(board/mod): Make it possible to iterate over nodes under pin name
2025-09-19 13:05:31 +02:00
Mikolaj Wielgus
d708c7177a
fix(geometry/geometry): Rewrite uses of `debug_assert!(...)` to not break release
2025-09-18 00:03:24 +02:00
Mikolaj Wielgus
59cd745332
chore: Fix one more remaining nightly build error
2025-09-16 21:17:36 +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
f1e65267da
refactor(triangulation): Don't use `.graph()` when creating triangulations
2025-09-15 22:42:45 +02:00
Mikolaj Wielgus
71fdec2f06
refactor(autorouter/ratsnest): Move unionfind to new file, don't use `.graph()` there
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
aee8c42720
feat(autorouter/presorter): Take into account ratline-pad intersections
2025-09-11 23:25:03 +02:00
Mikolaj Wielgus
7bb1a1efbc
docs: Add some comments warning about race conditions, rename some identifiers
2025-08-19 15:55:20 +02:00
Mikolaj Wielgus
5bff83ecbd
refactor: Add method to join iterable of edits into one edit
2025-08-09 22:55:45 +02:00
Ellen Emilia Anna Zscheile
6f7586227c
feat(board/edit): Edit structures should implement Default trait
2025-08-09 22:44:33 +02:00
Mikolaj Wielgus
83285dde6d
feat(drawing/drawing): Make it possible to have multiple outers for each gear
2025-08-09 21:08:10 +02:00
Mikolaj Wielgus
6317d8b08a
feat(geometry/geometry): Create outward bend walker, use it for R-tree updates
...
Drawing and above abstraction layers do not use it yet, but this will
change soon.
2025-08-09 21:08:10 +02:00
Ellen Emilia Anna Zscheile
8732ee7fbb
refactor(geometry/edit): Put reverse and merge functionality into trait (DRY)
2025-07-20 12:40:56 +02:00
Mikolaj Wielgus
2f4dac223c
fix(geometry/with_rtree): Do not remove only-modified dots when applying edit
...
This fixes a panic when undoing some bands.
180952c94f1c7c56c2ce5d2bdd3ab672aa0ccfec did not fix this problem
because we did not stop removing modified dots.
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
4d5fc25ae3
refactor(drawing/drawing): Some minor changes to method naming, comments, contracts
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
3c9ce32ff2
fix(geometry/edit): Remove `(None, None)` pairs when merging edits
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
6dc1ea601c
fix(geometry/with_rtree): Add edit apply special handling for modified dots
...
This does not fix the problems I'm encountering, but is an edge case I
should try to cover anyway.
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
21dd6ffd39
fix(geometry/with_rtree): Debug-assert instead of returning `Err(())`
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
a9c4456a54
fix(geometry/geometry): Debug-assert against failed node and edge removals
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
42c788063b
fix(geometry/edit): Find first gear correctly, don't rely on edge order
2025-07-17 12:49:25 +02:00
Mikolaj Wielgus
5a0fec9618
fix(geometry/recording_with_rtree): Some more fixes against bend bbox invalidation
...
1f8ace9c77 did not fix all the bbox
invalidation problems, hopefully this gets this right now.
2025-07-16 19:35:51 +02:00
Mikolaj Wielgus
f75bae0666
fix(geometry/recording_with_rtree): Attach bends applied from edit
...
This was unimplemented, which made both redo and cane removal not work
correctly.
2025-07-16 15:27:56 +02:00
Mikolaj Wielgus
1f8ace9c77
fix(geometry/recording_with_rtree): Do not inadvertedly invalidate bend bboxes
...
This fixes a crash that was happening when undoing autoroutings.
Bends are still not restored correctly, I will fix that soon.
2025-07-16 00:22:57 +02:00
Mikolaj Wielgus
48fe63a387
feat(geometry/with_rtree): Assert R-tree element removal to be always successful
2025-07-15 23:04:35 +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
Mikolaj Wielgus
8647df026d
refactor(geometry/edit): "merge" instead of "apply" edit on another edit
...
This is just a small terminological distinction.
2025-05-26 02:44:26 +02:00
Ellen Emilia Anna Zscheile
8d0681c07d
fix(topola-egui): Fix click-based selection of pins
...
- Do intersection calculation between DotShape and Rect=AABB properly
2025-05-21 01:02:12 +02:00
Ellen Emilia Anna Zscheile
2394fa6256
feat(geometry/geometry): Add convenience GetPetgraphIndex impls
2025-05-17 02:43:19 +02:00
Ellen Emilia Anna Zscheile
48efd5d3d9
feat(geometry/geometry): provide lookup of all rails around a core
2025-05-02 14:31:18 +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
f416958936
refactor(geometry): use more ergonomic petgraph methods where appropriate
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
4bf3611bb7
style: rename `src/geometry/poly.rs` to `src/geometry/polygon.rs`
2025-04-22 20:42: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
cdee22d63e
feat(geometry/edit): impl ApplyGeometryEdit for GeometryEdit
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
61c7b5450f
refactor(Retag): only implement trait once, Index should be associated type
2025-02-10 11:29:08 +01: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
b4fe7006b7
feat(math): introduce dedicated data type for normalized angles
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