package com.xenoage.zong.musiclayout.notation; import com.xenoage.zong.core.music.MusicElement; import com.xenoage.zong.core.position.MP; import com.xenoage.zong.musiclayout.spacing.ElementWidth; /** * This is the interface for {@link MusicElement} layout * information classes. * * It is called <code>Notation</code>, because it contains the positioned representation * of the by then ambiguous raw musical data. * * It contains the width of an element and additional layout information. * * For example, the class {@link ChordNotation} contains the * alignment of its notes and accidentals. * * For performance reasons, also the {@link MP} of the element can be stored, * instead of being retrieved each time again (some values could be unknown though). * * @author Andreas Wenger */ public interface Notation { /** Gets the notated musical element. */ MusicElement getElement(); /** Gets the {@link MP} of the element, as far as possible. */ MP getMp(); /** Gets the required horizontal space of this element. */ ElementWidth getWidth(); }