Mikolaj Wielgus
f7f2e8ea49
autorouter: if band removal fails, propagate error instead of panicking
2024-08-30 16:32:37 +02:00
Mikolaj Wielgus
2105e8c7cf
drawing: rename "rails" and "wraparoundables" to "gears"
2024-08-29 05:24:05 +02:00
Mikolaj Wielgus
3bf4d2cdb1
autorouter,board: use both band uids and band termsegs
2024-07-24 02:27:11 +02:00
Mikolaj Wielgus
5da6ec4463
drawing: create methods for obtaining UIDs for bands
2024-07-23 02:03:55 +02:00
Mikolaj Wielgus
3fd31746af
drawing: make not having infringables the default when adding canes
...
The previous commit only did it for inserted canes.
2024-07-09 18:56:34 +02:00
Mikolaj Wielgus
1c07eb96ac
drawing: for now, make adding canes have no infringables
2024-07-09 17:01:29 +02:00
Mikolaj Wielgus
806742736a
cleanup: get rid of `*Trait` names for traits, use verbs and sentences
2024-07-03 13:40:37 +02:00
Mikolaj Wielgus
b1f60847b3
drawing: move head length measurement methods to new refstruct
2024-07-03 03:37:14 +02:00
Mikolaj Wielgus
1706d5ae8c
drawing: add invariant contract for pairwise non-infringement of looses
2024-06-24 16:36:05 +02:00
Mikolaj Wielgus
c3fe91aabe
drawing: split finding infringers into multiple methods
2024-06-24 13:55:46 +02:00
Mikolaj Wielgus
d4a310a5c0
graph: disambiguate naming of different kinds of indices
...
Disambiguate between node indices and (teir inner) petgraph indices.
Rename "band index" to "band first seg index", as we identify bands by
teir first segs. Rename "trianvertex index" and "navvertex index"
respectively to "trianvertex node index" and "navvertex node index", as
these point to nodes on the geometry graph and only indirectly to
vertices on the vertex graph.
2024-06-18 15:30:33 +02:00
Mikolaj Wielgus
d193ea6565
drawing: rename "segbends" to "canes"
...
In addition to a seg and a bend, a segbend actually also contains a dot,
so let's rename it to "cane", which is also easier to translate.
2024-06-18 01:16:12 +02:00
Mikolaj Wielgus
a7b4a84b98
layout: remove inserted dots if placing via fails
2024-06-17 23:59:36 +02:00
Mikolaj Wielgus
c4788c0277
drawing: remove hardcoded layer count of 2
2024-06-15 01:06:50 +02:00
Mikolaj Wielgus
008dcfeca0
geometry: store layer in `usize`, not `u64`
2024-06-14 04:58:52 +02:00
Mikolaj Wielgus
339387c657
drawing: remove forgotten leftover dbg!() traces
2024-06-13 18:46:27 +02:00
Mikolaj Wielgus
cff6b5aaf6
cleanup: cargo fix, cargo fmt
2024-06-13 13:38:12 +02:00
Mikolaj Wielgus
c5842b7821
drawing: fix contracts on placement failures
2024-06-12 14:44:26 +02:00
Mikolaj Wielgus
90bc90350d
tests: test via placement failure
2024-06-12 01:51:04 +02:00
Mikolaj Wielgus
f91dadf4d3
drawing,layout,board: categorize methods as possibly infringing and not
2024-06-11 23:57:47 +02:00
Mikolaj Wielgus
9e65a28c3d
drawing: cosmetic renamings and rearrangements
2024-06-11 13:53:43 +02:00
Mikolaj Wielgus
7a02877eb4
board,dsn: move layer and net name bidirectional lookup to `Mesadata`
2024-06-08 21:39:25 +02:00
Mikolaj Wielgus
98363fbfd1
drawing: remove unnecessary contracts on `&self` methods
2024-06-08 18:28:34 +02:00
Mikolaj Wielgus
c006dcfd47
drawing: create `BandIndex` object to pass around bands
2024-05-14 00:28:32 +02:00
Mikolaj Wielgus
e86ce9836a
drawing: don't intersect with objects on other layers
2024-05-11 22:29:44 +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
43f1248a76
geometry: have a common `Shape` object for both primitives and compounds
2024-04-18 15:41:01 +02:00
Mikolaj Wielgus
e5bae501ad
geometry: make compound weights accessible from `CompoundManagerTrait`
2024-04-18 13:58:04 +02:00
Mikolaj Wielgus
f2569c5167
layout: alias `Node` to not require generic parameters
2024-04-17 21:06:55 +02:00
Mikolaj Wielgus
4a9322d694
overlay: new module, impl. basic mouse selection of primitives
...
Only check for intersection of the AABB as a starter.
2024-04-16 00:21:18 +00:00
Mikolaj Wielgus
df23ea8398
router: move top-level files to own `router` module
2024-04-14 20:25:01 +00:00
Mikolaj Wielgus
bad487f6af
geometry,drawing: rename grouping to compound, node to node weight
2024-04-13 18:51:34 +00:00
Mikolaj Wielgus
13dd000dba
geometry,layout,drawing: add accessor for node's groupings
2024-04-12 23:50:47 +00:00
Mikolaj Wielgus
9feb32955c
drawing,layout: move zones upwards, from drawing to layout
...
This generally largely drawings from groupings. We need this because it
will be easier to handle all groupings on the level of layout as
continents and bands, which are groupings too, are to be tracked there.
There's a lot of rough edges when it comes to typing and contracts.
2024-04-11 18:07:08 +00:00
Mikolaj Wielgus
5cef59227a
geometry: expose grouping management via new trait
2024-04-10 22:13:45 +00:00
Mikolaj Wielgus
6932a698f6
geometry: rename `Shape*` to `PrimitiveShape*`
2024-04-10 01:34:18 +00:00
Mikolaj Wielgus
b04950cafc
drawing: implement adding dots and segs assigned to a zone
2024-04-06 01:57:39 +00:00
Mikolaj Wielgus
1a624b83b1
drawing: implement getting zones and teir members
2024-04-04 13:54:47 +00:00
Mikolaj Wielgus
1f9b04215a
drawing: rename drawing groupings to zones
...
A zone is a narrower concept than a grouping, as it cannot hold any
bends.
2024-04-03 12:31:51 +00:00
Mikolaj Wielgus
31189a9f5e
geometry: create bboxes for groupings
2024-03-28 01:31:12 +00:00
Mikolaj Wielgus
3a812d5621
geometry: implement incomplete interface for manipulation of groupings
2024-03-26 20:24:15 +00:00
Mikolaj Wielgus
888a4ecbad
geometry: provide basic internals for storing groupings
...
Will develop an interface in subsequent commits.
2024-03-25 12:49:19 +00:00
Mikolaj Wielgus
e23f7de07e
drawing: use `None` instead of negative values to denote no net
2024-03-24 16:34:50 +00:00
Mikolaj Wielgus
ef823c1c27
board,layout: rename "layout" to "drawing", "board" to "layout"
2024-03-22 23:23:31 +00:00