performLayout method

  1. @override
void performLayout(
  1. ChantContext ctxt
)
override

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);
}