Commit Graph

1445 Commits

Author SHA1 Message Date
Mikolaj Wielgus f9ea3940d2 Load outlines to its own separate layer and group 2026-05-24 02:52:45 +02:00
Mikolaj Wielgus ca517f62bd Create layer groups, assign each layer to one of it 2026-05-24 00:04:14 +02:00
Mikolaj Wielgus 58be28cc8b Move `topola/src/compounds/` directory under `topola/src/layout/` 2026-05-23 21:03:22 +02:00
Mikolaj Wielgus a947a72a02 Encapsulate layer indices in new `LayerId` type 2026-05-23 20:28:57 +02:00
Mikolaj Wielgus 1b9673e3e7 Derive `From` on id types 2026-05-23 19:38:01 +02:00
Mikolaj Wielgus c525af7fca Apply `derive(Delta)` on `Board` instead of manually implementing 2026-05-22 01:26:53 +02:00
Mikolaj Wielgus 459c4b41ee Add interfaces to move components 2026-05-20 15:15:33 +02:00
Mikolaj Wielgus 24af694c6b Distinguish one layer as active 2026-05-19 23:54:10 +02:00
Mikolaj Wielgus 2ed6e13a50 Expand `layout.rs` into new module directory 2026-05-19 23:24:43 +02:00
Mikolaj Wielgus 692ec68ec2 Expand `board.rs` into a new module directory 2026-05-19 21:16:10 +02:00
Mikolaj Wielgus d2d43b99c3 Implement function to resolve pin-with-layer selection to component selection 2026-05-19 16:00:55 +02:00
Mikolaj Wielgus 76bad7a2a0 Import and keep track of component names 2026-05-19 15:08:30 +02:00
Mikolaj Wielgus 25efbd1627 Rearrange and rename selections and compounds 2026-05-19 14:05:40 +02:00
Mikolaj Wielgus e536e94039 Add new type of compound, component 2026-05-18 23:29:59 +02:00
Mikolaj Wielgus bc5e205b90 Move nets and pins to separate directory, `compounds` 2026-05-18 22:41:57 +02:00
Mikolaj Wielgus b05c31f767 Use `Index` instead of `Get` with unwrap 2026-05-18 21:52:26 +02:00
Mikolaj Wielgus 79f859f8cb Add (not yet used) private interface to modify joints without segment, via updates 2026-05-18 21:09:47 +02:00
Mikolaj Wielgus 618905f56d Add interfaces to modify joints, segments, vias, polygons 2026-05-18 17:02:31 +02:00
Mikolaj Wielgus b2a75fd520 Split `Joint` into input `JointSpec` and actually stored `Joint` 2026-05-18 15:02:44 +02:00
Mikolaj Wielgus 7f67a24808 Update `undoredo` to 0.10 2026-05-18 14:21:06 +02:00
Mikolaj Wielgus 272bdb326d Split `Via` into input `ViaSpec` and actually stored `Via` 2026-05-17 03:01:59 +02:00
Mikolaj Wielgus 258b43267d Distribute `primitives.rs` into multiple files 2026-05-17 02:34:23 +02:00
Mikolaj Wielgus 67f3426586 Split `Segment` into full `Segment` and input `SegmentSpec` 2026-05-17 02:18:42 +02:00
Mikolaj Wielgus 36004b155b Explain in comments how to point-in-polygon checking method works 2026-05-16 21:07:42 +02:00
Mikolaj Wielgus fc3857072c Wrap `NavmesherBoard` inside new `Router` struct 2026-03-21 11:52:55 +01:00
Mikolaj Wielgus fa6c1ca522 Don't connect different-net primitives with ratlines 2026-03-20 20:01:46 +01:00
Mikolaj Wielgus 1dc6519722 Display primitives in reverse order of layers 2026-03-20 20:01:46 +01:00
Mikolaj Wielgus 780f1f9d11 Add separate methods to find all layer joints, segments, polygons 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 7f4d3eb420 Add ratsnest generation (not used yet) 2026-03-19 21:46:04 +01:00
Mikolaj Wielgus f351728762 Add Kruskal's minimum spanning tree algorithm 2026-03-19 19:50:50 +01:00
Mikolaj Wielgus a4d13a3435 Do some renamings, some changes in `Cargo.toml` 2026-03-19 14:27:32 +01:00
Mikolaj Wielgus 2f52c1e236 Add method to calculate polygon centroid 2026-03-19 14:12:54 +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 1b84eea06b Rename "navpolygon" to "obstacle" 2026-03-18 15:04:47 +01:00
Mikolaj Wielgus 78b7d9ddbf Keep index to each primitive's navpolygon 2026-03-17 16:06:41 +01:00
Mikolaj Wielgus 630e7a49d3 Simplify code in `navmesher.rs` a bit 2026-03-17 14:04:31 +01:00
Mikolaj Wielgus 50b7dc26b0 Use `Vector2<i64>` instead of `[i64; 2]` in `navmesher.rs` 2026-03-17 13:19:08 +01:00
Mikolaj Wielgus 41dd0a91f8 Revert "Store primitive id for each navpolygon to go back from navmesh to board"
This reverts commit 269e14645e.
2026-03-16 22:28:25 +01:00
Mikolaj Wielgus 269e14645e Store primitive id for each navpolygon to go back from navmesh to board 2026-03-16 22:05:25 +01:00
Mikolaj Wielgus 6a1ce72923 Bump `dearcut` version to 0.3.0 2026-03-16 21:11:00 +01:00
Mikolaj Wielgus 990462d046 Fix Specctra DSN parsing errors 2026-03-15 01:24:06 +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 6992369041 Filter out bbox-located primitives for which hit-test fails 2026-03-14 18:55:19 +01:00
Mikolaj Wielgus 7aed12dda9 Add method to check if polygon contains point 2026-03-14 18:40:19 +01:00