performLayout method
Implementation
@override
void performLayout(ChantContext ctxt) {
super.performLayout(ctxt);
final first = notes[0];
final second = notes[1];
final third = notes[2];
GlyphCode thirdGlyph;
if (hasFlag(third.liquescent, LiquescentType.small)) {
thirdGlyph = GlyphCode.terminatingAscLiquescent;
} else if (hasFlag(third.liquescent, LiquescentType.descending)) {
thirdGlyph = GlyphCode.punctumQuadratumDesLiquescent;
} else {
thirdGlyph = third.staffPosition - second.staffPosition > 1
? GlyphCode.podatusUpper
: GlyphCode.podatusUpperShort;
}
final builder = build(ctxt);
if (!first.suppressVirga) builder.lineFrom(second);
builder
..withPorrectusSwash(start: first, end: second)
..noteAt(third, thirdGlyph);
finishLayout(ctxt);
}