Mikolaj Wielgus
55ed4bf4cc
feat(topola-egui): Replace "update timestep" with "step rate"
...
The term "timestep" is usually used to refer to a time step on some
internal simulation time scale that is separate from the real time.
There is however no time scale other than real time in Topola.
2025-10-30 05:18:05 +01:00
Mikolaj Wielgus
c163980073
feat(topola-egui): Add checkbox to toggle fixing of step rate
2025-10-29 16:05:56 +01:00
Mikolaj Wielgus
04293d9e4a
feat(topola-egui): Move debug-only view options to new menubar's menu "Debug"
2025-10-29 03:53:18 +01:00
Mikolaj Wielgus
b9f7d4ec4f
fix(topola-egui): Add another condition to prevent stuttering
2025-10-28 18:13:46 +01:00
Mikolaj Wielgus
ba5a254e11
fix(topola-egui): Always clamp `dt` to `i.predicted_dt`
...
`egui` clamps its `i.stable_dt` to `i.predicted_dt` only when egui
requested a repaint during the last frame. I however sometimes
experience severe stuttering, which means that this detection
method is insufficient to ensure smoothness. So, let's clamp `dt` to
`i.predicted_dt` and see if this helps.
2025-10-28 16:05:58 +01:00
Mikolaj Wielgus
d50e346706
feat(autorouter/autorouter): Remove "compare detours"
...
This was a time-expensive way to presort ratlines, it's much faster to
instead operate on ratline line segments.
2025-10-22 01:44:52 +02:00
Mikolaj Wielgus
b7fd6a0cab
feat(autorouter/autorouter): Impl. rudimentary multilayer reconfigurator (not yet functional)
2025-10-21 18:00:55 +02:00
Mikolaj Wielgus
1b3ecc37b1
refactor(specctra-core): Remove `layer_count` from `SpecctraMesadata`
...
This information is already stored in `Drawing`, I somehow missed that
when I was adding this field.
2025-10-20 14:24:41 +02:00
Mikolaj Wielgus
8f59319902
feat(autorouter/autorouter): Have separate ratsnest for each (principal) layer
2025-10-15 15:15:02 +02:00
Mikolaj Wielgus
2895277e73
fix: Fix build and test errors due to botched last commit
2025-10-14 02:21:48 +02:00
Mikolaj Wielgus
cd73c766a5
refactor(topola-egui): Move storing principal layer to planar autoroute options
...
I've done some struct renaming while at it.
2025-10-13 21:38:47 +02:00
Mikolaj Wielgus
4c1a72dc1d
refactor(autorouter/autorouter): Put ratsnest in wrapper, mostly transparent for now
2025-10-13 00:32:53 +02:00
Mikolaj Wielgus
43f8d69281
fix(topola-egui): Don't filter out translayer ratlines
2025-10-08 23:00:04 +02:00
Mikolaj Wielgus
8235c66c7e
fix(autorouter/anterouter): Correctly calculate fanout lengths
2025-10-08 02:18:56 +02:00
Mikolaj Wielgus
a3521e7286
feat(autorouter/anterouter): Add option to set fanout clearance
2025-10-07 22:37:50 +02:00
Mikolaj Wielgus
9a5b2095d5
feat(autorouter/autorouter): Implement germ of multilayer autorouting
2025-09-27 15:45:10 +02:00
Mikolaj Wielgus
0e12f32db4
chore: Correct copyright lines (MIT, not MIT OR Apache-2.0)
2025-09-26 00:56:08 +02:00
Mikolaj Wielgus
d74a06b2ea
feat(topola-egui): Hide ratlines that were already routed
2025-09-22 15:03:14 +02:00
Mikolaj Wielgus
00aa79ff31
feat(drawing/query): Don't infringe or collide primitives on different layers
2025-09-22 01:27:08 +02:00
Mikolaj Wielgus
3078d9d546
feat(topola-egui): Highlight node index of the obstacling primitive
2025-09-21 14:40:26 +02:00
Mikolaj Wielgus
d75c73b540
feat(topola-egui): Add option to display primitive indices on debug overlay
2025-09-21 13:09:48 +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
1b485e81a6
feat(autorouter/permuter): Implement permutation by ratline cut
...
Not yet used, and can get stuck in an infinite loop, but the cut seems
to work.
2025-09-09 16:24:15 +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
fca8e44269
feat(router/router): Backtrack if initial parent was on the same compound
2025-08-24 00:12:38 +02:00
Mikolaj Wielgus
3738bacf6f
fix(math/bitangents): Calculate bitangents even for intersecting circles
...
This fixes the bug where the router was failing to draw around SMD pads.
2025-08-19 15:46:12 +02:00
Mikolaj Wielgus
5fd4926fb6
feat(topola-egui): Display guide-bitangents on debug overlay
2025-08-16 01:17:29 +02:00
Mikolaj Wielgus
177c8abb18
refactor(drawing/guide): Instead of trait, just impl guide methods on `Drawing`
2025-08-15 23:31:23 +02:00
Mikolaj Wielgus
9819879617
feat(topola-egui): Display guide-circles on debug overlay
2025-08-15 16:18:31 +02:00
Mikolaj Wielgus
987a4c6e9e
fix: Flip by X instead of rotating by 180 degrees
...
Obviously -- flip is undone by a flip, not a rotation. This corrects the
previous commit.
2025-08-11 21:15:40 +02:00
Mikolaj Wielgus
b7a5d2ccb8
fix(specctra-core): Rotate components placed on back by 180 degrees
2025-08-11 20:21:45 +02:00
Mikolaj Wielgus
09c98f2d17
feat(autorouter/autoroute): Add option to toggle permutation
...
Updated with the following command in Fish shell:
```
for f in tests/**.cmd; jq ".done?.[].Autoroute[1].permutate |= false" $f | sponge $f; end
```
2025-07-19 21:42:47 +02:00
Mikolaj Wielgus
d7129354a1
feat(autorouter/autoroute): Record band assigns so undo actually works
...
Aborting the autoroute stepper was unimplemented and it would make the
autorouting job finish instead. This is fixed now.
2025-07-17 21:08:42 +02:00
Ellen Emilia Anna Zscheile
4fea23c9ac
chore: Fix warnings about lifetime annotations
2025-07-17 12:33:31 +02:00
Mikolaj Wielgus
ab4ba4e0b8
refactor(topola-egui): Split out some display code to new file, displayer.rs
2025-07-15 15:40:45 +02:00
Mikolaj Wielgus
800db3d4c0
refactor(topola-egui): Split some parts of `Viewport` code to methods
2025-07-15 02:13:56 +02:00
Mikolaj Wielgus
43005eb864
feat(autorouter/autorouter): Add presorting by ratline intersection count and length
...
Sadly, this does not work well for the DE-9 to DE-9 test, but it is a
step forward.
2025-07-14 13:26:38 +02:00
Mikolaj Wielgus
68d9844d0d
feat(topola-egui): Add progress bar for the currently routed ratline
...
The capability to measure progress will later be useful to choose slower
but better optimization strategies if more time is available.
2025-07-10 22:38:46 +02:00
Mikolaj Wielgus
29dc59df04
refactor(router/navmesh): Split out navmesh triangulation into "prenavmesh" module
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
9742740b9e
refactor(router/navmesh): Factor out some repeating code
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
3e322d7b34
feat(topola-egui): Add showing of triangulation constraints to debug overlay
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
f3245b9607
feat(router/navmesh): Add constraint edges for loose segs
...
This does not work entirely correctly. I will investigate in subsequent
commits.
2025-07-09 14:55:40 +02:00
Mikolaj Wielgus
b25ad863ba
refactor(autorouter/invoker): Merge debug overlay data traits into one trait
...
The name of this new trait shall be `GetDebugOverlayData`.
2025-07-06 23:09:08 +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
cfde2eac20
fix(planar-incr-embed): Fix Edge lhs vs. rhs association
2025-06-27 15:15:26 +02:00
Ellen Emilia Anna Zscheile
ed06170db5
feat: Debug print various TopoNavmesh structures / updates
...
- feat(autorouter/execution): Debug-print the whole TopoNavmesh on completion
- feat(router/ng/poly): Emit log output on route_to_exit success
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
c8848ef269
refactor(topola-egui): Move InteractiveEvent handling from Viewport into Workspace
2025-06-27 06:51:20 +02:00
Ellen Emilia Anna Zscheile
c66089bca9
fix(interactor/interactor): Factor out the logic for on-event activity updates
2025-06-27 06:12:38 +02:00