Commit Graph

42 Commits

Author SHA1 Message Date
Ellen Emilia Anna Zscheile 1505513552 feat(drawing/drawing): Store boundaries in Drawing 2025-06-10 15:37:47 +02:00
Ellen Emilia Anna Zscheile 3c807b5078 refactor(specctra/design): Resolve image once per component 2025-06-02 22:57:45 +02:00
Ellen Emilia Anna Zscheile a56628e250 fix(specctra/design): handle polygon seg between first and last dot properly 2025-04-17 18:51:29 +02:00
Ellen Emilia Anna Zscheile 122ff0122f fix(board): make Poly' apex generation non-lazy
- insert polygon parts before polygon compound
2025-04-17 15:03:14 +02:00
Ellen Emilia Anna Zscheile 0fde34204f refactor(drawing,geometry): move GetLayer from drawing::graph to geometry 2025-02-10 11:30:54 +01:00
Ellen Emilia Anna Zscheile 1e690ace11 refactor(drawing): factor out common {Bend,Dot,Seg}Weight fields 2025-02-10 11:29:08 +01:00
Ellen Emilia Anna Zscheile cf36177097 refactor: don't export modules only containing a single item 2025-02-02 22:03:12 +00:00
Mikolaj Wielgus 9664f1a31a fix: get rid of some indeterminism by using B-trees instead of hash maps
I have replaced all instances of `HashMap<...>` with `BTreeMap<...>`,
of `HashSet<...>` with `BTreeSet<...>`, and all the uses of the `Hash`
trait with `Ord`.

I have done a few manual tests and found the behavior to be
deterministic between the GUI application launches. However, undoing an
autoroute command and then manually executing it once again continues to
produce variable results. I suppose this is because of some bug in the
code where edits are applied. Hence, the issue

https://codeberg.org/topola/topola/issues/46

is only partially resolved.
2025-01-04 01:56:00 +01:00
Mikolaj Wielgus 44c30caafe chore(licensing): add REUSE license headers to `**.{rs,md,toml}` files
I ran the following command in Fish shell:

```
reuse annotate --skip-unrecognised --copyright="Topola contributors" --license="MIT" **.{rs,md,toml}
```

The choice of year 2024 in the copyright statements is intentional.
2024-12-29 22:47:00 +01:00
Alain Emilia Anna Zscheile 9e0bdb5bc7 refactor: various further refactorings (#128)
These optimize out unnecessary code duplication, reserve vector capacity beforehand by leveraging `Iterator`s and avoid unnecessary double-lookups into HashMaps.

Reviewed-on: https://codeberg.org/topola/topola/pulls/128
Co-authored-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Alain Emilia Anna Zscheile <fogti+devel@ytrizja.de>
2024-12-11 14:13:21 +00:00
Alain Emilia Anna Zscheile 27a4b61c4d refactor(topola): get rid of unnecessary clones and lookups 2024-12-08 16:20:05 +00:00
Alain Emilia Anna Zscheile 0fe23c9c71 build: put `specctra` module into separate crate 2024-12-06 14:38:00 +01:00
Alain Emilia Anna Zscheile 0b9d3c0a00 fix(specctra/design): invalid references shouldn't panic during serialization 2024-12-04 15:39:41 +00:00
Mikolaj Wielgus d6fe67a373 feat(board,layout,drawing): implement edit recording
Not stored in the undo/redo objects yet.
2024-11-13 00:00:56 +00:00
Tomasz Cichoń 509e032dbc specctra: echo the imported units when exporting 2024-10-28 23:30:10 +01:00
Tomasz Cichoń 77c0fa2272 specctra: various fixes to import 2024-10-27 07:19:12 +01:00
Alain Emilia Anna Zscheile 25a692aab9 egui/file_handler: run parsing in file loader thread
- also embed I/O errors with other errors
2024-10-04 02:11:17 +02:00
Alain Emilia Anna Zscheile 5e3ccf2560 chore: cargo fmt 2024-10-01 20:50:38 +00:00
Alain Emilia Anna Zscheile f653a96eb0 chore: trivial fixes of clippy warnings 2024-10-01 20:50:38 +00:00
hakki 8a12ce350c SpecctraDocs: added ommited Module descriptions 2024-09-29 19:22:05 +00:00
Tomasz Cichoń 947ecf2e1c specctra: clean up the hack related to layer import 2024-09-29 00:04:18 +02:00
Tomasz Cichoń 479791ea02 Merge branch 'develop' of https://codeberg.org/topola/topola into develop 2024-09-28 22:11:09 +02:00
Alain Emilia Anna Zscheile 12f43a112e specctra/design: get rid of unnecessary re-inserts of bimap entries
This code should've been redundant since introduction of bimap usage for
layer<->layername and net<->netname lookup.
2024-09-28 13:29:54 +02:00
Alain Emilia Anna Zscheile 60d9880ab2 specctra/design: remove code duplication at padstack lookup 2024-09-28 13:29:54 +02:00
Alain Emilia Anna Zscheile cd12775f46 specctra/design: refactor Self::layer calls to avoid repetition 2024-09-28 13:29:54 +02:00
Alain Emilia Anna Zscheile dc4ce2fbc7 math, spectra: factor out PointWithRotation 2024-09-28 13:29:47 +02:00
Tomasz Cichoń dfb2c20f1d specctra: a hack to attempt loading layers from EasyEDA 2024-09-28 11:16:47 +02:00
Tomasz Cichoń 479646d503 specctra: propagate line/column info to returned error type 2024-09-28 10:04:47 +02:00
hakki ee9f4b5566 Write Specctra module documentation for Topola's library API (#34)
Reviewed-on: https://codeberg.org/topola/topola/pulls/34
Co-authored-by: hakki <hakki@noreply.codeberg.org>
Co-committed-by: hakki <hakki@noreply.codeberg.org>
2024-09-27 10:29:23 +00:00
Mikolaj Wielgus ace5709e5d cleanup: `cargo fix`, `cargo fmt` to reduce number of error messages 2024-07-15 13:14:17 +02:00
Mikolaj Wielgus cd6c9fbe76 sdl2-bench: remove the SDL2 bench (aka. SDL2 demo) entirely
First, from now on I'm going to call the "SDL2 demo" the "SDL2 bench",
as a demo is software that exists to demonstrate, whereas its purpose
lately has been only fast prototyping, as we switched to make all demo
animations in the Egui port anyway.

Second, I'm removing the SDL2 bench anyway as it's a maintenance burden
that lost its utility. It's also affected by a bug in Pathfinder that
makes it impossible to zoom beyond a certain threshold which would
require someone to dig into Pathfinder's codebase, a task I don't think
anyone is interested in.
2024-07-15 01:31:45 +02:00
Tomasz Cichoń 9e2a0acab0 specctra: add export of bends (downgraded to line segment chains) 2024-07-12 15:14:15 +02:00
Tomasz Cichoń 8c3a3f1e72 specctra, egui: add menu option for specctra session export 2024-07-10 17:17:26 +02:00
Mikolaj Wielgus be9ff3a85a layout: rename "zone" to "poly"
We'll keep the term "zone" for higher-level concepts.
2024-07-09 23:09:39 +02:00
Mikolaj Wielgus e9ba5cd9b3 specctra: move file opening code outside, operate on `BufRead` instead 2024-07-04 23:55:58 +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 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
Tomasz Cichoń 13c8237da6 specctra: remove casts, accept floating point precision used internally 2024-06-16 22:34:11 +02:00
Tomasz Cichoń f37e7ce88d specctra: pass errors to app instead of panicking 2024-06-16 20:02:51 +02:00
Tomasz Cichoń aa0616840c specctra: remove old file reader based on serde 2024-06-16 19:02:54 +02:00
Mikolaj Wielgus 9d00e95457 specctra: change "dsn" to "specctra" where it's about both DSN and SES 2024-06-16 18:04:20 +02:00