Mikolaj Wielgus
f94733e0f0
feat(topola-egui): Add option to display bend endpoint tangents
...
This is just to be able to debug navmesh pruning.
2025-11-30 22:25:15 +01:00
Mikolaj Wielgus
62a4d6c413
refactor(drawing/drawing): Rename `.primitive(...)` to `.primitive_ref(...)`
2025-11-30 13:57:58 +01:00
Mikolaj Wielgus
2c94b50290
feat(router/thetastar): Highlight currently attempted navedge
2025-11-29 19:03:12 +01:00
Mikolaj Wielgus
b9b52fb977
feat(topola-egui): Display origin-destination by default
2025-11-29 16:02:41 +01:00
Mikolaj Wielgus
00e3bb87bf
feat(specctra-core): Add basic via SES export (constant size and only two layers for now)
2025-11-24 00:05:19 +01:00
Mikolaj Wielgus
88f8b3610d
refactor(autorouter/planar_reconfigurer): Use generic A* to find planar configurations
...
This makes the 4x4_1206_led_matrix_breakout test fail.
However, commenting out
```
if curr_g_score + *edge_g_cost >= entry_score {
continue;
}
```
makes the test successful again. I will investigate this soon.
2025-11-18 18:42:34 +01:00
Mikolaj Wielgus
63e1f7f25a
feat(topola-egui): Paint constraint edges in thick white instead of offsetted yellow
2025-11-16 01:56:34 +01:00
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