Commit Graph

862 Commits

Author SHA1 Message Date
Mikolaj Wielgus d9ff08477c autorouter: encapsulate selection in `Selection` object
Just a thin wrapper over `HashSet` for now, but will contain more
complicated logic later.
2024-05-13 03:20:47 +02:00
Mikolaj Wielgus f893f73cd8 autorouter: autoroute only selected 2024-05-12 20:29:07 +02:00
Mikolaj Wielgus a6fb1157e3 egui,tests: fix compilation errors 2024-05-12 01:57:40 +02:00
Mikolaj Wielgus 42a0777e7f sdl2-demo: disable painting of bends
These cause stack overflows due to a bug in Pathfinder.
2024-05-12 01:56:01 +02:00
Mikolaj Wielgus 9bd63d3f0d tests: change project name of THT female to THT female test 2024-05-12 01:55:35 +02:00
Mikolaj Wielgus 338adc32a3 tests: test routed connections and number of ratlines in 0603 breakout 2024-05-12 01:48:56 +02:00
Mikolaj Wielgus e86ce9836a drawing: don't intersect with objects on other layers 2024-05-11 22:29:44 +02:00
Mikolaj Wielgus 4f7c3b40d9 tests: add THT female to THT female DE-9 gender changer testdata 2024-05-11 15:03:05 +02:00
Mikolaj Wielgus 36bc606401 autorouter: fix off-by-one error when walking over ratlines 2024-05-11 05:00:53 +02:00
Mikolaj Wielgus 2cd33dac60 sdl2-demo: use `Autorouter` object 2024-05-11 03:54:43 +02:00
Mikolaj Wielgus b3f36d22b4 layout: fix apex detection - these can be joined with loose segs 2024-05-11 02:39:50 +02:00
Mikolaj Wielgus 452bcaf09d sdl2-demo: fix compilation errors 2024-05-10 23:01:42 +02:00
Mikolaj Wielgus a5dcacdd69 egui: draw routing start and stop 2024-05-10 20:37:13 +02:00
Mikolaj Wielgus 9ac4c780b5 router: store origin and target in navmesh 2024-05-10 19:54:03 +02:00
Mikolaj Wielgus c1db44c25f autorouter: reorder code to avoid peeking in the edges iterator 2024-05-10 19:38:14 +02:00
Mikolaj Wielgus 83f3245e55 router: exclude same-net nodes from navmesh (except for start and stop) 2024-05-10 01:25:00 +02:00
Mikolaj Wielgus 91f9466d74 autorouter,router: route only single layer at a time
It makes no sense to route multiple layers at once until we implement
automatic via placement, which is going to take a lot of time.
2024-05-07 20:06:54 +02:00
Mikolaj Wielgus 765738f44b autorouter: treat (layer, net) pairs like separate nets for ratsnest
Most likely we won't be having via placement anytime soon, so let's
narrow our routing capabilities to single layer at a time.
2024-05-07 02:09:48 +02:00
Mikolaj Wielgus 2a97e9bb06 tests: add 0603 breakout test 2024-05-06 20:49:38 +02:00
Mikolaj Wielgus 95674a9a53 dsn: skip dot coincident with preceding dot 2024-05-06 20:48:23 +02:00
Mikolaj Wielgus 4efc2d482b egui: paint currently probed edges in bold yellow 2024-05-06 12:05:50 +02:00
Mikolaj Wielgus eaecb99146 egui: draw the navmesh
This required some considerable rearrangements in `Router`.
2024-05-06 02:35:43 +02:00
Mikolaj Wielgus 63561e6a4a layout: make apices have the same net as teir zones 2024-05-05 21:39:17 +02:00
Mikolaj Wielgus 946f2dbd6c autorouter: make it possible to delegate the loop outside `.autoroute()` 2024-05-05 17:55:47 +02:00
Mikolaj Wielgus b82f5417c3 egui: animate routing as it goes, show attempted traces 2024-05-05 12:55:08 +02:00
Mikolaj Wielgus a2c8ae7e70 autorouter: put `Layout` in a mutex 2024-05-04 18:02:34 +02:00
Mikolaj Wielgus ea854abfc7 Revert "egui: perform routing in separate thread or task"
This reverts commit 4144ee361f.

Instead of mutexing the autorouter, we'll mutex the layout.
2024-05-04 15:03:36 +02:00
Mikolaj Wielgus 4144ee361f egui: perform routing in separate thread or task 2024-05-03 19:50:38 +02:00
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