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];
  final fourth = notes[3];

  if (third.shape == NoteShape.virga) {
    build(ctxt)
      ..withPodatus(lower: first, upper: second)
      ..advanceBy(ctxt.intraNeumeSpacing)
      ..withClivis(upper: third, lower: fourth);
  } else {
    GlyphCode fourthGlyph = GlyphCode.punctumQuadratum;

    if (hasFlag(fourth.liquescent, LiquescentType.ascending)) {
      fourthGlyph = GlyphCode.punctumQuadratumAscLiquescent;
    } else if (hasFlag(fourth.liquescent, LiquescentType.descending)) {
      fourthGlyph = GlyphCode.punctumQuadratumDesLiquescent;
    }

    build(ctxt)
      ..noteAt(first, GlyphCode.punctumQuadratum)
      ..withPodatus(lower: second, upper: third)
      ..advanceBy(ctxt.intraNeumeSpacing)
      ..noteAt(fourth, fourthGlyph);
  }

  finishLayout(ctxt);
}