diff --git a/gallery/test.typ b/gallery/test.typ index fe07b62..2a5ef2f 100644 --- a/gallery/test.typ +++ b/gallery/test.typ @@ -117,7 +117,7 @@ wire.wire( "wExtender-ImmSrc", ( "Extender.north", - (18, -2) + (18, -2, 0) ), style: "zigzag", zigzag-ratio: 0%, @@ -138,8 +138,8 @@ ) wire.wire( "wBus", ( - (v => (v.at(0), -3.5), mid), - (horizontal: (), vertical: (0, 3.5)), + (v => (v.at(0), -3.5, 0), mid), + (horizontal: (), vertical: (0, 3.5, 0)), ), bus: true ) diff --git a/gallery/test2.typ b/gallery/test2.typ index f8ea126..0544ffe 100644 --- a/gallery/test2.typ +++ b/gallery/test2.typ @@ -124,7 +124,7 @@ wire.wire( "wExtender-ImmSrc", ( "Extender.north", - (18, -2) + (18, -2, 0) ), style: "zigzag", zigzag-ratio: 0%, @@ -145,8 +145,8 @@ ) wire.wire( "wBus", ( - (v => (v.at(0), -3.5), mid), - (horizontal: (), vertical: (0, 3.5)), + (v => (v.at(0), -3.5, 0), mid), + (horizontal: (), vertical: (0, 3.5, 0)), ), bus: true ) diff --git a/src/cetz.typ b/src/cetz.typ index 980a619..adb796c 100644 --- a/src/cetz.typ +++ b/src/cetz.typ @@ -1 +1 @@ -#import "@preview/cetz:0.3.4": * \ No newline at end of file +#import "@preview/cetz:0.5.2": * \ No newline at end of file diff --git a/src/elements/element.typ b/src/elements/element.typ index 09adfd3..b65d6bd 100644 --- a/src/elements/element.typ +++ b/src/elements/element.typ @@ -76,7 +76,7 @@ if (type(x) == dictionary) { let offset = x.rel let to = x.to - let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0), to: to)) + let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0, 0), to: to)) x = to-pos.at(0) } diff --git a/src/elements/extender.typ b/src/elements/extender.typ index cb40ae0..9a80a9d 100644 --- a/src/elements/extender.typ +++ b/src/elements/extender.typ @@ -91,7 +91,7 @@ debug: debug ) - let in-pos = (rel: (0, h * (h-ratio / 200%)), to: id+".south-west") + let in-pos = (rel: (0, h * (h-ratio / 200%), 0), to: id+".south-west") let out-pos = (id+".south-east", out-pct, id+".north-east") add-port(id, "west", ports.west.first(), in-pos) add-port(id, "east", ports.east.first(), out-pos) diff --git a/src/elements/group.typ b/src/elements/group.typ index 994072c..38cf252 100644 --- a/src/elements/group.typ +++ b/src/elements/group.typ @@ -61,8 +61,8 @@ draw.hide(draw.group(name: id+"-inner", body)) draw.rect( - (rel: (-pad-left, -pad-bottom), to: id+"-inner.south-west"), - (rel: (pad-right, pad-top), to: id+"-inner.north-east"), + (rel: (-pad-left, -pad-bottom, 0), to: id+"-inner.south-west"), + (rel: (pad-right, pad-top, 0), to: id+"-inner.north-east"), name: id, radius: radius, stroke: stroke, diff --git a/src/elements/logic/gate.typ b/src/elements/logic/gate.typ index bd0fb23..0d7c09f 100644 --- a/src/elements/logic/gate.typ +++ b/src/elements/logic/gate.typ @@ -51,7 +51,7 @@ if (type(x) == dictionary) { let offset = x.rel let to = x.to - let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0), to: to)) + let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0, 0), to: to)) x = to-pos.at(0) } @@ -101,7 +101,7 @@ let port-pos = int-name + ".0" if inverted == "all" or port-name in inverted { draw.circle(port-pos, radius: inverted-radius, anchor: "east", stroke: stroke) - port-pos = (rel: (-2 * inverted-radius, 0), to: port-pos) + port-pos = (rel: (-2 * inverted-radius, 0, 0), to: port-pos) } add-port( id, "west", @@ -113,7 +113,7 @@ let out-pos = id + ".east" if inverted == "all" or "out" in inverted { draw.circle(out-pos, radius: inverted-radius, anchor: "west", stroke: stroke) - out-pos = (rel: (2 * inverted-radius, 0), to: out-pos) + out-pos = (rel: (2 * inverted-radius, 0, 0), to: out-pos) } add-port( id, "east", diff --git a/src/elements/logic/iec_gate.typ b/src/elements/logic/iec_gate.typ index 08d97f1..743188e 100644 --- a/src/elements/logic/iec_gate.typ +++ b/src/elements/logic/iec_gate.typ @@ -62,7 +62,7 @@ if (type(x) == dictionary) { let offset = x.rel let to = x.to - let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0), to: to)) + let (ctx, to-pos) = coordinate.resolve(ctx, (rel: (offset, 0, 0), to: to)) x = to-pos.at(0) } @@ -103,7 +103,7 @@ anchor: "east", stroke: stroke ) - port-pos = (rel: (-2 * inverted-radius, 0), to: port-pos) + port-pos = (rel: (-2 * inverted-radius, 0, 0), to: port-pos) } add-port( id, "west", @@ -115,7 +115,7 @@ let out-pos = id + ".east" if inverted == "all" or "out" in inverted { draw.circle(out-pos, radius: inverted-radius, anchor: "west", stroke: stroke) - out-pos = (rel: (2 * inverted-radius, 0), to: out-pos) + out-pos = (rel: (2 * inverted-radius, 0, 0), to: out-pos) } add-port( id, "east", diff --git a/src/elements/ports.typ b/src/elements/ports.typ index b24cdfc..912ba78 100644 --- a/src/elements/ports.typ +++ b/src/elements/ports.typ @@ -17,10 +17,10 @@ let size = if port.at("small", default: false) {8pt} else {1em} let offset - if (side == "north") { offset = ( 0, -size) } - else if (side == "east") { offset = (-size, 0) } - else if (side == "south") { offset = ( 0, size) } - else if (side == "west") { offset = ( size, 0) } + if (side == "north") { offset = ( 0, -size, 0) } + else if (side == "east") { offset = (-size, 0, 0) } + else if (side == "south") { offset = ( 0, size, 0) } + else if (side == "west") { offset = ( size, 0, 0) } let pos1 = (rel: offset, to: pos) diff --git a/src/wire.typ b/src/wire.typ index cbf7c4b..b2ffd41 100644 --- a/src/wire.typ +++ b/src/wire.typ @@ -68,8 +68,8 @@ let (ctx, p0) = coordinate.resolve(ctx, start) let (ctx, p3) = coordinate.resolve(ctx, end) - p0 = (x: p0.first(), y: p0.last()) - p3 = (x: p3.first(), y: p3.last()) + p0 = (x: p0.first(), y: p0.at(1)) + p3 = (x: p3.first(), y: p3.at(1)) let dx1 = margin-start let dx2 = margin-end @@ -86,13 +86,13 @@ if side-end == "east" { dx2 *= -1 } - p1 = (p0.x + dx1, p0.y) - p2 = (p3.x - dx2, p0.y) + p1 = (p0.x + dx1, p0.y, 0) + p2 = (p3.x - dx2, p0.y, 0) let points = ( start, (horizontal: p1, vertical: ()), - (horizontal: (), vertical: (0, dodge-y)), + (horizontal: (), vertical: (0, dodge-y, 0)), (horizontal: p2, vertical: ()), (horizontal: (), vertical: end), end @@ -147,18 +147,18 @@ // points that are closest to the edge points - let p1 = (p0.x + dx1, p0.y + dy1) - let p5 = (p6.x + dx2, p6.y + dy2) + let p1 = (p0.x + dx1, p0.y + dy1, 0) + let p5 = (p6.x + dx2, p6.y + dy2, 0) // middle point let center_x = p0.x + box_width * center_horizontal / 100% let center_y = p0.y + box_height * center_vertical / 100% - let p3 = (center_x, center_y) + let p3 = (center_x, center_y, 0) // setting up the points for that touch the guides - let p2 = (0,0) - let p4 = (0,0) + let p2 = (0,0,0) + let p4 = (0,0,0) if side-start in ("north", "south") { p2 = (horizontal: p3, vertical: p1) } else { @@ -365,17 +365,17 @@ /// - name-offset (number): The name offset, perpendicular to the stub #let stub(port-id, side, name: none, vertical: false, length: 1em, name-offset: 0) = { let end-offset = ( - north: (0, length), - east: (length, 0), - south: (0, -length), - west: (-length, 0) + north: (0, length, 0), + east: (length, 0, 0), + south: (0, -length, 0), + west: (-length, 0, 0) ).at(side) let name-offset = ( - north: (name-offset, length), - east: (length, name-offset), - south: (name-offset, -length), - west: (-length, name-offset) + north: (name-offset, length, 0), + east: (length, name-offset, 0), + south: (name-offset, -length, 0), + west: (-length, name-offset, 0) ).at(side) draw.line(