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];

  final builder = build(ctxt)..noteAt(first, GlyphCode.punctumQuadratum);

  if (!(hasFlag(second.shapeModifiers, NoteShapeModifiers.stemmed))) {
    builder.advanceBy(ctxt.intraNeumeSpacing);
  }

  builder.noteAt(second, GlyphCode.oriscusAsc);

  if (hasFlag(fourth.liquescent, LiquescentType.small)) {
    builder.noteAt(third, GlyphCode.punctumQuadratumDesLiquescent);
  } else {
    builder.noteAt(third, GlyphCode.punctumQuadratum);
  }

  if (hasFlag(fourth.liquescent, LiquescentType.small)) {
    builder.noteAt(fourth, GlyphCode.terminatingDesLiquescent);
  } else if (hasFlag(fourth.liquescent, LiquescentType.ascending)) {
    builder.noteAt(fourth, GlyphCode.punctumQuadratumAscLiquescent);
  } else if (hasFlag(fourth.liquescent, LiquescentType.descending)) {
    builder.noteAt(fourth, GlyphCode.punctumQuadratumDesLiquescent);
  } else {
    builder.noteAt(fourth, GlyphCode.punctumQuadratum);
  }

  finishLayout(ctxt);
}