Commit Graph

1121 Commits

Author SHA1 Message Date
Mikolaj Wielgus 74d10f4a9e layout,sdl2-demo,egui: basic support for displaying two layers 2024-03-14 21:51:29 +00:00
Mikolaj Wielgus 5a0ea94a87 geometry: make shape bboxes occupy only one layer instead of all 2024-03-14 19:17:38 +00:00
Mikolaj Wielgus cf01cdaea5 geometry: store the bbox in the rtree instead of caching the shape 2024-03-14 17:01:00 +00:00
Mikolaj Wielgus 6965177e78 layout: access shape via layout instead of getting it from a cache 2024-03-14 13:59:22 +00:00
Mikolaj Wielgus 93381f39fb geometry: store some layer data in `GeometryWithRtree` 2024-03-14 13:27:31 +00:00
Mikolaj Wielgus 9730ff215e layout: inherit `GetLayer` via enum_dispatch macro 2024-03-14 00:52:57 +00:00
Mikolaj Wielgus 45593c9e7a dsn,layout: store layer in weights 2024-03-11 22:34:14 +00:00
Mikolaj Wielgus d8e128e81a egui: actually load and display the layout 2024-03-09 17:03:05 +00:00
Mikolaj Wielgus f8892f64a7 dsn: make `DsnDesign` don't own the constructed `DsnRules` object 2024-03-09 13:12:58 +00:00
Tomasz Cichoń b661047ca8 sdl2-demo: fix envelope/mesh sizes 2024-03-08 13:07:46 +01:00
Tomasz Cichoń 164a2230ee dsn: encapsulate de::Deserializer, reorganize error types 2024-03-08 12:40:06 +01:00
Tomasz Cichoń 12574712a4 dsn: remove temporary scaling factor
The binary targets have zooming and no longer need it for display.
2024-03-08 10:12:31 +01:00
Tomasz Cichoń 23fe001647 tests: add export of prerouted_lm317_breakout
The file can now be parsed and partially loaded into Layout.
2024-03-08 09:09:38 +01:00
Tomasz Cichoń fb6922a5e5 sdl2-demo: add zooming/panning 2024-03-08 08:55:30 +01:00
Tomasz Cichoń ada12b32fd dsn: fix import bug misplacing shapes 2024-03-08 06:56:17 +01:00
Tomasz Cichoń 137026301c dsn: make import skip rather than panic on unsupported shapes
This should help debug the infringements happening when trying to load prerouted_lm317_breakout.
2024-03-08 06:00:17 +01:00
Tomasz Cichoń 6bbbc368c6 dsn: refactor the parser/serializer to allow enums
This cleans up and defines new types in structure.rs as well.
2024-03-08 05:06:00 +01:00
Mikolaj Wielgus 8a56a16528 egui: implement zooming in/out to a point 2024-03-05 20:02:16 +00:00
Mikolaj Wielgus 4959f3512b egui: implement moving the canvas horizontally and vertically 2024-03-05 18:51:17 +00:00
Mikolaj Wielgus b43111030e egui: implement basic interactive zooming 2024-03-05 12:56:44 +00:00
Mikolaj Wielgus 4689bc8e37 dsn: layout may contain multiple planes 2024-03-04 11:07:34 +00:00
Mikolaj Wielgus 803d8edf94 dsn: count lines from 1, not 0 2024-03-04 10:49:22 +00:00
Mikolaj Wielgus aa40c80d82 cargo: make pathfinder an optional, SDL2-only dependency 2024-03-03 11:43:58 +00:00
Mikolaj Wielgus ec799fb107 dsn: display line, column when printing error 2024-03-03 10:53:42 +00:00
Mikolaj Wielgus 7d0a17febd cargo: make rfd, futures dependencies conditioned by egui feature 2024-03-03 06:59:06 +00:00
Mikolaj Wielgus e50fb26bdd egui: make the WASM port actually work 2024-03-02 16:09:01 +00:00
Mikolaj Wielgus 95d3b8291e assets: add logo
A really simple logo as I'm really bad at drawing.
2024-03-02 09:57:48 +00:00
Mikolaj Wielgus fd4eb0b4dd egui: implement basic input file selection from dialog
Imported layout is not displayed yet.
2024-03-02 06:54:12 +00:00
Mikolaj Wielgus d5d26cdaeb tests: add prerouted LM317 breakout board project for testing
Will add some tests for it in later commits.
2024-03-01 11:13:04 +00:00
Tomasz Cichoń 88180f5f33 dsn: add the ability to load planes, polygons and rotated pins 2024-03-01 03:52:28 +01:00
Tomasz Cichoń de21bbaa8e dsn, rules: fix import bugs, update test file 2024-02-29 22:12:37 +01:00
Mikolaj Wielgus 2f6b40410c board: make layout private
Also add board/ directory, as I forgot to add it in the previous commit.
2024-02-29 02:28:15 +00:00
Mikolaj Wielgus 8d55fbc837 layout: move connectivity to new superordinate `Board` struct
This is very rudimentary (merely compiles and doesn't panic). Routing is
unlikely to work at the moment. I'll be fixing all this in subsequent
commits.
2024-02-28 09:24:49 +00:00
Tomasz Cichoń b53dc62df3 rules: implement `RulesTrait` for rules imported from DSN 2024-02-28 04:17:59 +01:00
Mikolaj Wielgus bec701dbc9 Revert "layout: encapsulate weight geometrical datas in new "geodata" structs"
This reverts commit a3ba8c9ba9.

This wasn't the right approach. Instead, we need a superordinate struct
that will manage the connectivity without layout knowing anything about
it.
2024-02-27 06:19:35 +00:00
Tomasz Cichoń 88c353896c dsn: fix net assignment for imported pins 2024-02-27 04:39:39 +01:00
Mikolaj Wielgus a3ba8c9ba9 layout: encapsulate weight geometrical datas in new "geodata" structs 2024-02-26 23:39:10 +00:00
Mikolaj Wielgus 7f69ffddf9 geometry: move geometry module to from layout to root
As we'll be creating a deeper hierarchy of modules subordinate to
layout, we need to keep the module full paths short to prevent tem from
growing uncontrollably.
2024-02-26 19:16:40 +00:00
Mikolaj Wielgus bbc89a3c94 dsn: implement loading pins from components 2024-02-24 05:35:07 +00:00
Mikolaj Wielgus 5ba56963ee dsn,tests: use pins instead of vias in test .dsn file 2024-02-23 23:07:39 +00:00
Tomasz Cichoń 786953787f dsn: add loading of assignments of pins to nets 2024-02-23 06:30:10 +01:00
Tomasz Cichoń bf7d89e7bd dsn: include the source files the test case was exported from 2024-02-23 04:34:08 +01:00
Tomasz Cichoń 2014be1004 dsn: add loading of simple images containing pins 2024-02-23 03:52:07 +01:00
Tomasz Cichoń 53fd88f408 design: make layout import resolve via names 2024-02-23 03:41:07 +01:00
Mikolaj Wielgus c005337ea8 layout: rename "component" to "continent"
The term "component" has already a meaning in electronics, and moreover
the term "connected component" from graph theory may apply to more
things (e.g. landmasses made of continents connected with bands may
collectively be considered connected components too).
2024-02-22 21:23:01 +00:00
Mikolaj Wielgus 473a877845 dsn: encapsulate DSN structure in new `DsnDesign` struct
Using a placeholder instead of rules and disabled routing for now. Also
did some formatting corrections.
2024-02-22 04:49:55 +00:00
Tomasz Cichoń 3f6bad2ed6 dsn, sdl2-demo: replace hardcoded layout with basic .dsn file 2024-02-21 19:22:05 +01:00
Mikolaj Wielgus 08c03a0e77 egui: implement painting of shapes 2024-02-21 16:29:58 +00:00
Mikolaj Wielgus f10f7b7ab4 cargo: rename topola-gui to topola-egui, minor refactoring 2024-02-20 04:18:19 +00:00
Mikolaj Wielgus 0cb7a015d4 cargo: clean up features and shorten Cargo.toml 2024-02-19 16:43:39 +00:00