Commit Graph

1234 Commits

Author SHA1 Message Date
Mikolaj Wielgus 682f179cad egui: draw bounding boxes 2024-05-03 02:42:42 +02:00
Mikolaj Wielgus 2be8baab55 autorouter: route all ratline endpoint pairs
Routed bands are intersecting with each other for some reason, but at
least this doesn't crash.
2024-05-03 01:36:07 +02:00
Mikolaj Wielgus 531bc6d22c autorouter: as a starter, route the endpoints of only the first ratline 2024-05-03 01:36:04 +02:00
Mikolaj Wielgus 9c332bdde3 egui: add "Autoroute" button
Not functional yet as I still haven't implemented
`Autorouter::autoroute()`
2024-05-02 18:53:43 +02:00
Mikolaj Wielgus 5664b73494 layout: implement creation and return of the apex
Apex is the dot positioned at the center of a zone that is used to
terminate and tie any band ending in the zone.
2024-05-02 01:21:00 +02:00
Mikolaj Wielgus ea22ba705c layout: create `Zone` struct for accessing zone properties 2024-05-01 20:57:49 +02:00
Mikolaj Wielgus c74e69a5e9 autorouter: move ratsnest to `Autorouter`, move overlay to egui module 2024-04-27 01:12:01 +02:00
Mikolaj Wielgus 81f9f82f40 overlay: move overlay to new autorouter module 2024-04-26 02:34:25 +02:00
Mikolaj Wielgus 5ff9a27403 readme: update official repository link 2024-04-25 00:47:49 +02:00
Mikolaj Wielgus 072a5c601e contributing: some copyediting 2024-04-25 00:46:11 +02:00
Mikolaj Wielgus 4d222cbb9f readme: mention the contribution guide 2024-04-25 00:39:15 +02:00
Mikolaj Wielgus 0b8a7ee3bf contributing: add some introductory and welcoming text 2024-04-25 00:22:47 +02:00
Szpachlarz b1dc1d1f83 Add CONTRIBUTING.md 2024-04-24 19:34:09 +00:00
Mikolaj Wielgus 6f9015106d overlay: separately triangulate each net
The way this is done is ineffective of course and we'll have to optimize
it later.
2024-04-24 03:01:50 +02:00
Mikolaj Wielgus d1ae0ec9c6 tests: remove residual traces from the unrouted LM317 breakout 2024-04-23 22:18:03 +02:00
Mikolaj Wielgus 133d14b8bc overlay: don't create ratlines for connected nodes 2024-04-23 21:39:16 +02:00
Mikolaj Wielgus 5ce35a5357 overlay: make ratlines between centers of pads instead of teir dots 2024-04-23 00:56:20 +02:00
Mikolaj Wielgus 68df579308 overlay: minimize ratsnest edge lengths 2024-04-22 18:06:42 +02:00
Mikolaj Wielgus 44bbb20e62 triangulation: for refs consistently use structs instead of tuples 2024-04-22 01:31:02 +02:00
Mikolaj Wielgus 8d59242f3f overlay,egui: impl. incomplete ratsnest generation and drawing
For now only doing Delaunay triangulation, then applying minimum
spanning tree (without properly working edge ordering yet).
2024-04-21 19:51:47 +02:00
Mikolaj Wielgus 8ac63ea6d1 tests: add unrouted export of prerouted_lm317_breakout 2024-04-20 20:28:46 +02:00
Mikolaj Wielgus 47b8616a40 triangulation: move out and make independent of layout and drawing 2024-04-20 14:50:17 +02:00
Mikolaj Wielgus 51c6eeea1f router: rename "mesh" to "navmesh"
Clearer name. There will be more kinds of meshes (e.g. the ratsnest).
2024-04-20 14:12:31 +02:00
Mikolaj Wielgus 014aa018a9 router: constructor should return an already prepared mesh 2024-04-20 14:02:52 +02:00
Mikolaj Wielgus fba86ceccd router: operate on `Layout`, not `Drawing` 2024-04-20 00:31:20 +02:00
Mikolaj Wielgus 94c88a51f8 router: impl. more traits for triangulation to allow more algorithms 2024-04-19 14:39:50 +02:00
Mikolaj Wielgus 8a6b0724e9 egui: highlight selected zones 2024-04-18 16:35:10 +02:00
Mikolaj Wielgus 43f1248a76 geometry: have a common `Shape` object for both primitives and compounds 2024-04-18 15:41:01 +02:00
Mikolaj Wielgus e5bae501ad geometry: make compound weights accessible from `CompoundManagerTrait` 2024-04-18 13:58:04 +02:00
Mikolaj Wielgus f2569c5167 layout: alias `Node` to not require generic parameters 2024-04-17 21:06:55 +02:00
Mikolaj Wielgus 4c8f7cb804 overlay: toggle only one node at a time, prioritize active layer 2024-04-17 03:36:15 +00:00
Mikolaj Wielgus 87f5f4e8c0 overlay: toggle selection only if clicked inside the shape 2024-04-16 13:38:19 +00:00
Mikolaj Wielgus 4a9322d694 overlay: new module, impl. basic mouse selection of primitives
Only check for intersection of the AABB as a starter.
2024-04-16 00:21:18 +00:00
Mikolaj Wielgus df23ea8398 router: move top-level files to own `router` module 2024-04-14 20:25:01 +00:00
Mikolaj Wielgus bad487f6af geometry,drawing: rename grouping to compound, node to node weight 2024-04-13 18:51:34 +00:00
Mikolaj Wielgus 13dd000dba geometry,layout,drawing: add accessor for node's groupings 2024-04-12 23:50:47 +00:00
Mikolaj Wielgus 9feb32955c drawing,layout: move zones upwards, from drawing to layout
This generally largely drawings from groupings. We need this because it
will be easier to handle all groupings on the level of layout as
continents and bands, which are groupings too, are to be tracked there.

There's a lot of rough edges when it comes to typing and contracts.
2024-04-11 18:07:08 +00:00
Mikolaj Wielgus 5cef59227a geometry: expose grouping management via new trait 2024-04-10 22:13:45 +00:00
Mikolaj Wielgus f2d0de6607 geometry: implement checking if point is contained in shape 2024-04-10 03:01:16 +00:00
Mikolaj Wielgus 6932a698f6 geometry: rename `Shape*` to `PrimitiveShape*` 2024-04-10 01:34:18 +00:00
Mikolaj Wielgus 2d5998547a egui: paint zones (only convex ones work for now) 2024-04-08 21:52:15 +00:00
Mikolaj Wielgus c141dfc735 dsn: implement importing solid polygons 2024-04-06 01:58:51 +00:00
Mikolaj Wielgus b04950cafc drawing: implement adding dots and segs assigned to a zone 2024-04-06 01:57:39 +00:00
Mikolaj Wielgus 1362058db5 sdl2-demo: fix painting of zones
The Y coordinate was not inverted, and the zone polygon would not get
closed.
2024-04-06 01:55:58 +00:00
Mikolaj Wielgus 9bf18db4d1 geometry: fix getting grouping members
The assumed grouping edge direction was wrong.
2024-04-06 01:53:58 +00:00
Mikolaj Wielgus 36e029012f sdl2-demo: implement painting of zones (untested) 2024-04-04 13:58:29 +00:00
Mikolaj Wielgus 1a624b83b1 drawing: implement getting zones and teir members 2024-04-04 13:54:47 +00:00
Mikolaj Wielgus 8f9abae921 drawing: rename remnants of the s/layout/drawing rename 2024-04-04 13:50:39 +00:00
Mikolaj Wielgus 0e553fd0ba drawing: implement getting zone's polygon 2024-04-03 12:33:04 +00:00
Mikolaj Wielgus 1f9b04215a drawing: rename drawing groupings to zones
A zone is a narrower concept than a grouping, as it cannot hold any
bends.
2024-04-03 12:31:51 +00:00