Mikolaj Wielgus
cfabfe335a
fix(topola-cli): Fix CLI build broken since 8216d3a907
2025-11-05 01:28:49 +01:00
Mikolaj Wielgus
8216d3a907
feat(topola-egui): Add sliders to set autorouting timeouts (not fully translated yet)
2025-11-04 20:02:34 +01:00
Mikolaj Wielgus
9afe862edc
feat(topola-egui): Display timeout of planar autoroute too
2025-11-04 17:15:27 +01:00
Mikolaj Wielgus
18e8f9812c
feat(stepper): Replace overengineered SMA rate timeout with two accumulators
2025-11-04 16:37:41 +01:00
Mikolaj Wielgus
0523fb53df
feat(topola-egui): Make step rate slider go up to 1000 steps/s
2025-11-03 02:10:02 +01:00
Mikolaj Wielgus
eff58d99e3
feat(autorouter/multilayer_reconfigurator): Add tracking of SMA of rate
...
SMA = Simple Moving Average
2025-11-03 01:26:49 +01:00
Mikolaj Wielgus
0f3f96d4af
feat(topola-egui): Add way to access subprogress and subprogress bar
...
This will be useful in future commits when I will be improving
reconfiguration triggers.
2025-11-01 02:40:25 +01:00
Mikolaj Wielgus
c0f4319a13
refactor(stepper): Join progress estimation into one method
2025-10-31 02:08:42 +01:00
Mikolaj Wielgus
7b66db1672
feat(topola-egui): Add checkboxes to toggle displaying obstacles and ghosts
...
Disabled showing them by default.
2025-10-30 19:01:34 +01:00
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