From cd8784fceed039c694de973ae75f9293adb83183 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sat, 19 Apr 2025 17:16:09 +0200 Subject: [PATCH] adapted ALU + minor fix in add-ports --- gallery/target_api.pdf | Bin 9051 -> 9612 bytes gallery/target_api.typ | 19 ++++---- src/elements/alu.typ | 98 +++++++++++++++------------------------ src/elements/element.typ | 2 +- src/elements/ports.typ | 2 +- 5 files changed, 50 insertions(+), 71 deletions(-) diff --git a/gallery/target_api.pdf b/gallery/target_api.pdf index 5f2b55be11ca885cd344c42b4479fc2761af2a29..3b01552577f52733fefd0b784361b59a7bbbe71d 100644 GIT binary patch delta 5955 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 {h * 0.225}, - in2: (h) => {h * 0.775}, - out: (h) => {h * 0.5} + ports-pos: ( + west: ( + in1: l => l * 0.225, + in2: l => l * 0.775, + ), + east: ( + out: l => l * 0.5 + ) ), - debug: debug + ..args ) } \ No newline at end of file diff --git a/src/elements/element.typ b/src/elements/element.typ index 2952461..5549ac1 100644 --- a/src/elements/element.typ +++ b/src/elements/element.typ @@ -10,7 +10,7 @@ } } } - panic("Could not find port with id '" + str(id) + "'") + panic("Could not find port with id '" + str(id) + "' in ports " + repr(ports)) } #let local-to-global(origin, u, v, points) = { diff --git a/src/elements/ports.typ b/src/elements/ports.typ index 52743c9..9f9ae74 100644 --- a/src/elements/ports.typ +++ b/src/elements/ports.typ @@ -142,7 +142,7 @@ pt0.at(1) - pt1.at(1) } for (i, port) in side-ports.enumerate() { - let offset = get-port-pos(elmt, bounds, side, port, i) + let offset = get-port-pos(elmt, bounds, side, port.id, i) let pos = (pt0, offset, pt1) let offset-prev = if type(offset) == ratio {