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
Mikolaj Wielgus
fd73531687
layout: store rotation direction as joint order instead of in weights
2024-02-06 05:30:53 +00:00
Mikolaj Wielgus
a395da4740
rules: use net as one of the conditions instead of netclass
2024-02-05 23:57:24 +00:00