Commit Graph

256 Commits

Author SHA1 Message Date
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
Mikolaj Wielgus 320176dd90 license: fill out years and copyright holders 2024-02-19 16:43:20 +00:00
Mikolaj Wielgus f2c2dca4be cargo: introduce topola-gui binary crate 2024-02-19 03:17:38 +00:00
Mikolaj Wielgus 171faec010 cargo,sdl2-demo: move the SDL2 demo to its own module behind a feature 2024-02-19 03:17:03 +00:00
Mikolaj Wielgus 296c2f7bc4 cargo: rename vendor/ to vendored/
Clearer name: it is us who are vendoring, not some external party.
2024-02-18 20:54:35 +00:00
Mikolaj Wielgus cf8a317f24 layout: remove inserted segbend if updating bows fails 2024-02-15 16:47:41 +00:00
Mikolaj Wielgus 4365284d47 layout: don't make abutters infringable as we don't need that anymore
Since we switched from having a long infringables list to using an
epsilon in intersection detection.
2024-02-15 04:01:55 +00:00
Mikolaj Wielgus ff19c252c1 shape: don't inflate seg front and back to prevent false infringements 2024-02-15 03:28:12 +00:00
Mikolaj Wielgus 6fa6ec7527 layout: use epsilons instead of infringable lists to evade abutters 2024-02-15 02:35:25 +00:00
Mikolaj Wielgus 2197017f54 layout: terminology improvements
- "connected" is renamed to "joined" (more local term),
- primitives whose clearance area neighbors another's are now called
  "abutters",
- primitives whose geometries depend on a bend are now called
  "posteriors" of said bend.
2024-02-13 04:45:39 +00:00
Mikolaj Wielgus e1f3d3ede4 layout: move neighborhood-collecting code to a new collect module 2024-02-13 00:46:12 +00:00
Mikolaj Wielgus 12af34d492 layout: make infringables include bends around the source
This fixes some of the routing failures due to rule infringements.
2024-02-11 20:38:58 +00:00
Mikolaj Wielgus d5d2ffd9d8 layout: inflate infringement-testing shapes and bboxes
This results in unintentional infringements of linked traces. I'll fix
this in subsequent commits by increasing the number of
2024-02-10 00:41:46 +00:00
Mikolaj Wielgus b66995b30c shape,layout: restore and fix bend-seg collision detection 2024-02-08 18:11:34 +00:00
Mikolaj Wielgus 7fdf90b126 layout: fix misalignment of shifted bends 2024-02-08 00:00:24 +00:00
Mikolaj Wielgus 850941715e router,layout,draw: remove hardcoded widths 2024-02-07 00:00:57 +00:00