NotePositioning.calculate constructor

NotePositioning.calculate(
  1. List<Note> notes,
  2. ChartPositioning chartPositioning
)

Implementation

factory NotePositioning.calculate(
  List<Note> notes,
  ChartPositioning chartPositioning,
) {
  final NotePositionMap notePositions = {};
  final TechniquePositionList techniquePositions = [];

  for (var note in notes) {
    final offset = notePositions.addNotePosition(chartPositioning, note);
    if (note.hammerOn != null) {
      techniquePositions.addTechniquePosition(
        notePositions,
        chartPositioning,
        note,
        offset,
        Technique.hammerOn,
        note.hammerOn!,
      );
    }
    if (note.pullOff != null) {
      techniquePositions.addTechniquePosition(
        notePositions,
        chartPositioning,
        note,
        offset,
        Technique.pullOff,
        note.pullOff!,
      );
    }
    if (note.slideTo != null) {
      techniquePositions.addTechniquePosition(
        notePositions,
        chartPositioning,
        note,
        offset,
        Technique.slide,
        note.slideTo!,
      );
    }
  }

  return NotePositioning(notePositions, techniquePositions);
}