Compare commits
No commits in common. "c7fba373a5b402391db9f10c5cea76af52d8cfbc" and "14cbda2ffbbe2ef6112166809296d7228075a4c6" have entirely different histories.
c7fba373a5
...
14cbda2ffb
Binary file not shown.
@ -12,20 +12,8 @@ Alice <-- Bob: Another authentication Response
|
||||
#chronos.diagram({
|
||||
import "/src/diagram.typ": *
|
||||
_seq("Alice", "Bob", comment: "Authentication Request")
|
||||
_seq("Bob", "Alice", comment: "Authentication Response", dashed: true)
|
||||
_seq("Bob", "Alice", comment: "Authentication Response", style: "dashed")
|
||||
|
||||
_seq("Alice", "Bob", comment: "Another authentication Request")
|
||||
_seq("Bob", "Alice", comment: "Another authentication Response", dashed: true)
|
||||
})
|
||||
|
||||
#chronos.diagram({
|
||||
import "/src/diagram.typ": *
|
||||
_seq("Bob", "Alice", comment: "bonjour", color: red)
|
||||
_seq("Alice", "Bob", comment: "ok", color: blue)
|
||||
})
|
||||
|
||||
#chronos.diagram({
|
||||
import "/src/diagram.typ": *
|
||||
_seq("Alice", "Bob", comment: "This is a test")
|
||||
_seq("Alice", "Callum", comment: "This is another test with a long text")
|
||||
_seq("Bob", "Alice", comment: "Another authentication Response", style: "dashed")
|
||||
})
|
@ -1,21 +1,12 @@
|
||||
#import "renderer.typ": render
|
||||
|
||||
#let _seq(
|
||||
p1,
|
||||
p2,
|
||||
comment: none,
|
||||
dashed: false,
|
||||
tip: "default",
|
||||
color: black
|
||||
) = {
|
||||
#let _seq(p1, p2, comment: none, style: auto) = {
|
||||
return ((
|
||||
type: "seq",
|
||||
p1: p1,
|
||||
p2: p2,
|
||||
comment: comment,
|
||||
dashed: dashed,
|
||||
tip: tip,
|
||||
color: color,
|
||||
style: style
|
||||
),)
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
#import "@preview/cetz:0.2.2": canvas, draw
|
||||
|
||||
#let Y-SPACE = 20
|
||||
#let PAR-PAD = (5pt, 3pt)
|
||||
#let PAR-SPACE = 10
|
||||
#let X-SPACE = 2
|
||||
#let Y-SPACE = 30
|
||||
|
||||
#let get-participants-i(participants) = {
|
||||
let pars-i = (:)
|
||||
@ -31,15 +30,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
let widths = ()
|
||||
for i in range(participants.len() - 1) {
|
||||
let p1 = participants.at(i)
|
||||
let p2 = participants.at(i + 1)
|
||||
let w1 = measure(box(p1.display-name)).width + PAR-PAD.last() * 2
|
||||
let w2 = measure(box(p2.display-name)).width + PAR-PAD.last() * 2
|
||||
widths.push(w1 / 2pt + w2 / 2pt + PAR-SPACE)
|
||||
}
|
||||
|
||||
let widths = participants.slice(0, -1).map(_ => 0)
|
||||
for cell in cells.filter(c => c.i2 - c.i1 == 1) {
|
||||
let m = measure(cell.cell)
|
||||
widths.at(cell.i1) = calc.max(
|
||||
@ -47,18 +38,6 @@
|
||||
m.width / 1pt
|
||||
)
|
||||
}
|
||||
|
||||
let multicol-cells = cells.filter(c => c.i2 - c.i1 > 1)
|
||||
multicol-cells = multicol-cells.sorted(key: c => {
|
||||
c.i1 * 1000 + c.i2
|
||||
})
|
||||
for cell in multicol-cells {
|
||||
let m = measure(cell.cell)
|
||||
widths.at(cell.i2 - 1) = calc.max(
|
||||
widths.at(cell.i2 - 1),
|
||||
m.width / 1pt - widths.slice(0, cell.i2 - 1).sum()
|
||||
)
|
||||
}
|
||||
return widths
|
||||
}
|
||||
|
||||
@ -79,7 +58,7 @@
|
||||
p.display-name,
|
||||
name: p.name,
|
||||
frame: "rect",
|
||||
padding: PAR-PAD,
|
||||
padding: (5pt, 3pt),
|
||||
anchor: "south"
|
||||
)
|
||||
}
|
||||
@ -90,18 +69,10 @@
|
||||
if elmt.type == "seq" {
|
||||
let x1 = x-pos.at(pars-i.at(elmt.p1))
|
||||
let x2 = x-pos.at(pars-i.at(elmt.p2))
|
||||
let style = (
|
||||
mark: (end: "straight"),
|
||||
stroke: (
|
||||
dash: if elmt.dashed {"dashed"} else {"solid"},
|
||||
paint: elmt.color
|
||||
)
|
||||
)
|
||||
|
||||
draw.line(
|
||||
(x1, y),
|
||||
(x2, y),
|
||||
..style
|
||||
mark: (end: "straight")
|
||||
)
|
||||
if elmt.comment != none {
|
||||
draw.content(
|
||||
@ -129,7 +100,7 @@
|
||||
p.display-name,
|
||||
name: p.name,
|
||||
frame: "rect",
|
||||
padding: PAR-PAD,
|
||||
padding: (5pt, 3pt),
|
||||
anchor: "north"
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user