Commit Graph

46 Commits

Author SHA1 Message Date
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
Mikolaj Wielgus 5e6ddac19f Import and display segments in pads 2026-03-10 18:08:56 +01:00
Mikolaj Wielgus 4264d2c52d feat(topola/specctra): Insert and display rectangular pins 2026-03-10 13:48:59 +01:00
Mikolaj Wielgus f4a8bee711 feat(topola-egui): Implement import of circular pads 2026-03-10 01:49:22 +01:00
Mikolaj Wielgus 5f7f8fe14e feat(topola-egui): Add zooming to fit 2026-03-09 23:04:40 +01:00
Mikolaj Wielgus 74b9004ed9 feat(topola-egui): Make stroke width independent of scale factor 2026-03-09 16:49:11 +01:00
Mikolaj Wielgus b1ab710adb feat(topola-egui): Display loaded board's boundary 2026-03-09 16:01:42 +01:00
Mikolaj Wielgus 78242f16fc feat(topola/board): Load boundary into `Board` 2026-03-09 13:30:59 +01:00
Mikolaj Wielgus 439c005fa2 Begin rewrite. Recreate basic, incomplete project 2026-03-08 22:51:30 +01:00