Compare commits
6 Commits
53adb58525
...
a7db89b214
| Author | SHA1 | Date | |
|---|---|---|---|
| a7db89b214 | |||
|
511368d405
|
|||
|
3a7e0a8176
|
|||
|
03c0f1cc7e
|
|||
|
df785be454
|
|||
|
692a4570ff
|
@@ -22,6 +22,7 @@
|
|||||||
/// - destroy-src (bool): If true, destroy the source lifeline and participant
|
/// - destroy-src (bool): If true, destroy the source lifeline and participant
|
||||||
/// - lifeline-style (auto, dict): Optional styling options for lifeline rectangles (see CeTZ documentation for more information on all possible values)
|
/// - lifeline-style (auto, dict): Optional styling options for lifeline rectangles (see CeTZ documentation for more information on all possible values)
|
||||||
/// - slant (none, int): Optional slant of the arrow
|
/// - slant (none, int): Optional slant of the arrow
|
||||||
|
/// - outer-lifeline-connect (bool): If true, enables legacy anchoring, making sequences connect to the leftmost lifeline when arriving from the left side. If false, all connections are made with the latest/rightmost lifeline
|
||||||
/// -> array
|
/// -> array
|
||||||
#let _seq(
|
#let _seq(
|
||||||
p1,
|
p1,
|
||||||
@@ -40,7 +41,8 @@
|
|||||||
disable-src: false,
|
disable-src: false,
|
||||||
destroy-src: false,
|
destroy-src: false,
|
||||||
lifeline-style: auto,
|
lifeline-style: auto,
|
||||||
slant: none
|
slant: none,
|
||||||
|
outer-lifeline-connect: false
|
||||||
) = {}
|
) = {}
|
||||||
|
|
||||||
/// Creates a return sequence
|
/// Creates a return sequence
|
||||||
|
|||||||
30299
manual.pdf
@@ -137,13 +137,19 @@
|
|||||||
end-info.ll-lvl = ctx.lifelines.at(i2).level * LIFELINE-W / 2
|
end-info.ll-lvl = ctx.lifelines.at(i2).level * LIFELINE-W / 2
|
||||||
|
|
||||||
// Compute left/right position at start/end
|
// Compute left/right position at start/end
|
||||||
start-info.insert("lx", start-info.x)
|
|
||||||
if start-info.ll-lvl != 0 { start-info.lx -= LIFELINE-W / 2 }
|
|
||||||
end-info.insert("lx", end-info.x)
|
|
||||||
if end-info.ll-lvl != 0 { end-info.lx -= LIFELINE-W / 2 }
|
|
||||||
|
|
||||||
start-info.insert("rx", start-info.x + start-info.ll-lvl)
|
start-info.insert("rx", start-info.x + start-info.ll-lvl)
|
||||||
end-info.insert("rx", end-info.x + end-info.ll-lvl)
|
end-info.insert("rx", end-info.x + end-info.ll-lvl)
|
||||||
|
let start-lx = start-info.x
|
||||||
|
let end-lx = end-info.x
|
||||||
|
if seq.outer-lifeline-connect {
|
||||||
|
if start-info.ll-lvl != 0 {start-lx -= LIFELINE-W / 2}
|
||||||
|
if end-info.ll-lvl != 0 {end-lx -= LIFELINE-W / 2}
|
||||||
|
} else {
|
||||||
|
if start-info.ll-lvl != 0 {start-lx = start-info.rx - LIFELINE-W}
|
||||||
|
if end-info.ll-lvl != 0 {end-lx = end-info.rx - LIFELINE-W}
|
||||||
|
}
|
||||||
|
start-info.insert("lx", start-lx)
|
||||||
|
end-info.insert("lx", end-lx)
|
||||||
|
|
||||||
// Choose correct points to link
|
// Choose correct points to link
|
||||||
let x1 = start-info.rx
|
let x1 = start-info.rx
|
||||||
|
|||||||
@@ -17,7 +17,8 @@
|
|||||||
disable-src: false,
|
disable-src: false,
|
||||||
destroy-src: false,
|
destroy-src: false,
|
||||||
lifeline-style: auto,
|
lifeline-style: auto,
|
||||||
slant: none
|
slant: none,
|
||||||
|
outer-lifeline-connect: false
|
||||||
) = {
|
) = {
|
||||||
return ((
|
return ((
|
||||||
type: "seq",
|
type: "seq",
|
||||||
@@ -39,6 +40,7 @@
|
|||||||
destroy-src: destroy-src,
|
destroy-src: destroy-src,
|
||||||
lifeline-style: lifeline-style,
|
lifeline-style: lifeline-style,
|
||||||
slant: slant,
|
slant: slant,
|
||||||
|
outer-lifeline-connect: outer-lifeline-connect,
|
||||||
linked-notes: ()
|
linked-notes: ()
|
||||||
),)
|
),)
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 9.0 KiB |
4
tests/sequence/outer-lifeline/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# generated by tytanic, do not edit
|
||||||
|
|
||||||
|
diff/**
|
||||||
|
out/**
|
||||||
BIN
tests/sequence/outer-lifeline/ref/1.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
tests/sequence/outer-lifeline/ref/2.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
29
tests/sequence/outer-lifeline/test.typ
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#set page(width: auto, height: auto)
|
||||||
|
#import "/src/lib.typ": *
|
||||||
|
|
||||||
|
#let make-diagram(_seq) = {
|
||||||
|
diagram({
|
||||||
|
_par("a")
|
||||||
|
_par("b")
|
||||||
|
_par("c")
|
||||||
|
_seq("a", "b")
|
||||||
|
_seq("c", "b")
|
||||||
|
_seq("a", "b", enable-dst: true)
|
||||||
|
_seq("a", "b")
|
||||||
|
_seq("c", "b")
|
||||||
|
_seq("a", "b", enable-dst: true)
|
||||||
|
_seq("a", "b")
|
||||||
|
_seq("c", "b")
|
||||||
|
_seq("a", "b", enable-dst: true)
|
||||||
|
_seq("a", "b")
|
||||||
|
_seq("c", "b")
|
||||||
|
|
||||||
|
_evt("b", "disable")
|
||||||
|
_evt("b", "disable")
|
||||||
|
_evt("b", "disable")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
#make-diagram(_seq)
|
||||||
|
#pagebreak()
|
||||||
|
#make-diagram(_seq.with(outer-lifeline-connect: true))
|
||||||