Mikolaj Wielgus
b134f7eef2
Rename "polygon" to "poly", "segment" to "seg"
...
This follows the established pattern of narrowing the meaning of a word
by its apocopation, like in the following examples:
difference -> diff (visual representation of a difference)
rectangle -> rect (axis-aligned rectangle)
configuration -> config (a top-level configuration)
application -> app
specification -> spec
2026-06-07 23:13:40 +02:00
Mikolaj Wielgus
ec8b72823c
Cache polygon centroids to speed up annealing
2026-06-07 20:52:28 +02:00
Mikolaj Wielgus
1433c02d81
Make it possible to hide debug overlay elements
2026-06-07 20:24:57 +02:00
Mikolaj Wielgus
a7fcf57a75
Add profiling capabilities (including GUI debug profiler)
2026-06-07 19:34:54 +02:00
Mikolaj Wielgus
8df8d760c3
First crude attempt at autoplacing using simulated annealing
2026-06-06 17:59:34 +02:00
Mikolaj Wielgus
65f96f1fc2
Move some GUI logic and workspace to new `Controller` struct
2026-06-05 14:12:41 +02:00
Mikolaj Wielgus
b2ef23c06c
Create and use new enum to later use different master interactors using the same interface
2026-06-05 00:30:08 +02:00
Mikolaj Wielgus
c7430f9fc9
Add toggle button and slider to change step rate
2026-06-04 22:23:44 +02:00
Mikolaj Wielgus
05108e964d
Display repulsions and attractions of selected pins and components
2026-06-03 02:44:55 +02:00
Mikolaj Wielgus
1264c3183a
Add capability to move components by dragging mouse
2026-05-29 16:09:30 +02:00
Mikolaj Wielgus
77950109fc
Add interactor for moving components
2026-05-29 12:28:35 +02:00
Mikolaj Wielgus
df5a9b57ec
Make it possible to select whole components. Use different color for pin selection
2026-05-28 22:35:25 +02:00
Mikolaj Wielgus
9221663d66
Select best layout objects, don't be strict over layer
2026-05-28 18:16:29 +02:00
Mikolaj Wielgus
e1795413bd
Actually display the drag selection box, and some fixes
2026-05-27 23:45:21 +02:00
Mikolaj Wielgus
1a2c4aeec2
Make selection responsibility of `topola`, not `topola-egui`, with new `Workspace` struct
...
Now use `MasterInteractor`.
2026-05-27 23:16:29 +02:00
Mikolaj Wielgus
da7585b135
Add master interactor to rule all interactors (WIP, not used yet)
2026-05-27 17:07:18 +02:00
Mikolaj Wielgus
5a3a870a13
Make containment mode dependent on left-to-right, right-to-left mouse drag
2026-05-27 02:02:05 +02:00
Mikolaj Wielgus
15a7bc65f1
Implement selection of nets
2026-05-27 00:45:30 +02:00
Mikolaj Wielgus
51005bb97c
Make drag selection interactor take selection modes as input
2026-05-27 00:21:13 +02:00
Mikolaj Wielgus
61c0134db4
Add drag selection interactors
2026-05-26 12:12:36 +02:00
Mikolaj Wielgus
1b4bb49a89
Add location methods for inside rect and intersecting rect
...
I did some renames while at it.
2026-05-26 03:02:21 +02:00
Mikolaj Wielgus
d9a4c7a11f
Add missing code for vias
2026-05-25 23:32:39 +02:00
Mikolaj Wielgus
eef69694fd
Move location methods to new files
2026-05-25 23:04:54 +02:00
Mikolaj Wielgus
dd2ce0ce3b
Instead of mapping colors to strings, map them to desc structs
2026-05-25 01:07:44 +02:00
Mikolaj Wielgus
a947a72a02
Encapsulate layer indices in new `LayerId` type
2026-05-23 20:28:57 +02:00
Mikolaj Wielgus
24af694c6b
Distinguish one layer as active
2026-05-19 23:54:10 +02:00
Mikolaj Wielgus
692ec68ec2
Expand `board.rs` into a new module directory
2026-05-19 21:16:10 +02:00
Mikolaj Wielgus
25efbd1627
Rearrange and rename selections and compounds
2026-05-19 14:05:40 +02:00
Mikolaj Wielgus
b2a75fd520
Split `Joint` into input `JointSpec` and actually stored `Joint`
2026-05-18 15:02:44 +02:00
Mikolaj Wielgus
67f3426586
Split `Segment` into full `Segment` and input `SegmentSpec`
2026-05-17 02:18:42 +02:00
Mikolaj Wielgus
fc3857072c
Wrap `NavmesherBoard` inside new `Router` struct
2026-03-21 11:52:55 +01:00
Mikolaj Wielgus
1dc6519722
Display primitives in reverse order of layers
2026-03-20 20:01:46 +01:00
Mikolaj Wielgus
9ea602baa4
Restore `NavmesherBoard` type, put it inside `Autorouter`
2026-03-20 20:01:46 +01:00
Mikolaj Wielgus
657d33ac6e
Display ratsnest
2026-03-20 20:01:46 +01:00
Mikolaj Wielgus
07427a3831
Rename `NavmesherBoard` to `Autorouter`, move it to own file
2026-03-19 22:37:33 +01:00
Mikolaj Wielgus
603160f660
Relicense to MIT OR Apache-2.0
2026-03-19 11:32:22 +01:00
Mikolaj Wielgus
f9e6c1bdda
Add methods to add multivertices to navmesher
2026-03-19 11:20:54 +01:00
Mikolaj Wielgus
2e56d20065
Highlight primitives of selected pins
2026-03-15 00:51:20 +01:00
Mikolaj Wielgus
a71df91fc1
Toggle pin in pin selection upon click
2026-03-14 23:31:29 +01:00
Mikolaj Wielgus
13c7bbb061
Find pin selector of what is under mouse pointer
2026-03-14 22:04:08 +01:00
Mikolaj Wielgus
2fc3b25fec
Use `Vector2<i64>` instead of `[i64; 2]`
2026-03-14 18:33:58 +01:00
Mikolaj Wielgus
68eafc1059
Add methods to locate joints, segments, polygons at point (bbox-only for now)
2026-03-14 14:17:45 +01:00
Mikolaj Wielgus
95694ac931
Display bboxes of primitives
2026-03-14 12:37:55 +01:00
Mikolaj Wielgus
ce5634ee6a
Revert "Keep track of primitive id associated with navpolygon"
...
This reverts commit 965080b8db .
2026-03-13 23:23:14 +01:00
Mikolaj Wielgus
965080b8db
Keep track of primitive id associated with navpolygon
2026-03-13 22:56:46 +01:00
Mikolaj Wielgus
ab30432f6b
Insert segments in navmesh
2026-03-11 21:04:52 +01:00
Mikolaj Wielgus
f3112dd886
Display navmeshes
2026-03-11 18:58:19 +01:00
Mikolaj Wielgus
09e1e35151
Wrap `Board` in `NavmesherBoard`
2026-03-11 10:26:23 +01:00
Mikolaj Wielgus
8cd52ca75c
Flip components if flipped in Specctra DSN
2026-03-11 08:30:52 +01:00
Mikolaj Wielgus
fde7b163df
Add appearance panel, show only enabled layers
2026-03-11 00:49:33 +01:00