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