Commit Graph

681 Commits

Author SHA1 Message Date
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
Mikolaj Wielgus 17209c2a65 draw,layout: create an interface for accessing conditions 2024-02-05 02:53:31 +00:00
Mikolaj Wielgus e5ddf47eb3 draw,guide: construct guides from rules 2024-02-03 23:19:47 +00:00
Mikolaj Wielgus d2ff1826a0 layout: attach `Rules` storing design rules to `Layout` 2024-02-02 23:58:23 +00:00
Mikolaj Wielgus 01d285efb0 layout: move guide, segbend files to layout module 2024-02-01 22:23:04 +00:00
Mikolaj Wielgus 847309adae geometry: make the R-tree private with read-only ref getter 2024-02-01 00:40:06 +00:00
Mikolaj Wielgus 4be2a0ca73 layout,geometry: move R-tree code to a new file in geometry module 2024-01-31 22:15:20 +00:00
Mikolaj Wielgus 39bd393ff7 geometry: make graph private, encapsulate all mutating usage of it 2024-01-30 19:00:16 +00:00
Mikolaj Wielgus 410b029eb3 geometry: move shape to geometry module 2024-01-30 02:06:22 +00:00
Mikolaj Wielgus 8b1d95491d layout: move `GeometryIndex` and `GeometryWeight` to own file 2024-01-30 01:51:19 +00:00
Mikolaj Wielgus 43df065120 layout: move connectivity, band, loose to layout module 2024-01-30 00:43:56 +00:00
Mikolaj Wielgus ca23d45673 geometry: move `Geometry` to a new module that is one level deeper 2024-01-30 00:03:01 +00:00
Mikolaj Wielgus 7f044f018f layout,geometry: move bend reattachment to `Geometry` 2024-01-29 20:46:13 +00:00
Mikolaj Wielgus 67f985c980 geometry,primitive: move code for finding segs and bends to `Geometry` 2024-01-29 02:25:32 +00:00
Mikolaj Wielgus 684d0be641 geometry,primitive: move more code and narrow typing further
We replace all instances of `NodeIndex<usize>` in public interfaces of
`Geometry` except for `.first_rail()`, for which we make a dirty
exception.

We also improve terminology a bit:

- "joint" is renamed to "connection",
- "end" is renamed to "joint",
- "leg" is renamed to "limb".
2024-01-29 01:34:06 +00:00
Mikolaj Wielgus 87705653bd geometry: use narrower types for returned adjacents 2024-01-28 20:53:36 +00:00
Mikolaj Wielgus 4c3d0062b0 geometry,primitive: move first rail, core, inner, outer to `Geometry` 2024-01-28 18:25:02 +00:00
Mikolaj Wielgus 4bb513ee08 cleanup: remove unused imports and traits 2024-01-28 15:01:13 +00:00
Mikolaj Wielgus 59180cc600 primitive,geometry: move bend shape-making code to `Geometry` too 2024-01-28 14:53:26 +00:00
Mikolaj Wielgus c855853a79 primitive,geometry: move dot, seg shape-making code to `Geometry`
We still need to move the code for bends -- but that's for tomorrow.
2024-01-28 00:35:16 +00:00
Mikolaj Wielgus d35d8cd8dc geometry: parameterize `Geometry` with general weights and dot weights 2024-01-27 20:09:13 +00:00
Mikolaj Wielgus 3fe54290c6 geometry: rename geometry submodule to layout, small typing changes 2024-01-27 16:20:04 +00:00
Mikolaj Wielgus 9f42991032 layout,geometry: move some code from `Layout` to new `Geometry` struct 2024-01-27 15:33:17 +00:00
Mikolaj Wielgus 8c1b7d1e7e geometry: move into own module, move dot, seg, bend to separate files 2024-01-27 13:42:33 +00:00