This issue will serve as a discussion and documentation for upcoming changes of the drawing pipeline.
These changes should provide the following improvements (non-exhaustive nor definitive list):
Easy creation of new elements (as DRY as possible)
Non-developer friendly framework
Local-coordinate drawing functions (should also help with element rotation)
Separation between circuit declaration and rendering
Integration with Touying to display the circuit in steps
This issue will serve as a discussion and documentation for upcoming changes of the drawing pipeline.
These changes should provide the following improvements (non-exhaustive nor definitive list):
- [ ] Easy creation of new elements (as DRY as possible)
- [ ] Non-developer friendly framework
- [ ] Local-coordinate drawing functions (should also help with element rotation)
- [ ] Element rotation (multiples of 90°) linked: #1
- [ ] Improve port handling
- [ ] Rotation independent
- [ ] Use simpler anchor names (i.e. remove `port-` prefix)
- [ ] Direction independent layout (provide more freedom for positioning components)
Additionally, here is a list of other interesting features that could be implemented to further improve user experience:
- [ ] Importable elements (e.g. as a JSON object)
- [ ] Auto-layout, as suggested in #7
- [ ] Separation between circuit declaration and rendering
- [ ] Integration with Touying to display the circuit in steps
HEL
added the enhancement label 2025-04-14 15:44:01 +00:00
As a first step, I think separating declarations and rendering would really help improve the overall structure, and could allow for more automatically computed values (e.g. stub sides)
Additionally, here is an example of what a better functional interface might look like (adapted from gallery/test.typ)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This issue will serve as a discussion and documentation for upcoming changes of the drawing pipeline.
These changes should provide the following improvements (non-exhaustive nor definitive list):
port-prefix)Additionally, here is a list of other interesting features that could be implemented to further improve user experience:
As a first step, I think separating declarations and rendering would really help improve the overall structure, and could allow for more automatically computed values (e.g. stub sides)
Additionally, here is an example of what a better functional interface might look like (adapted from gallery/test.typ)
Show / hide
Changes include:
posandsizeargumentsposvalues (e.g. align/with, offset/from)Res-MP.outinstead ofRes-MP-port-out)wire.wirename-posforwire.wire(usingnonevalues)