package material.beam.stafftouch;
import static com.xenoage.utils.collections.CollectionUtils.alist;
import static com.xenoage.zong.core.music.chord.StemDirection.Down;
import static com.xenoage.zong.core.music.chord.StemDirection.Up;
import static material.beam.stafftouch.TouchExample.example32nd;
import static material.beam.stafftouch.TouchExample.example8th;
import java.util.List;
import lombok.Getter;
import material.ZongSuite;
/**
* Examples of beams touching the staff.
*
* @author Andreas Wenger
*/
public class ZongStaffTouch
implements ZongSuite<TouchExample> {
@Getter List<TouchExample> examples = alist(
//8th beams
//Upstem beams
//Above staff
//touching top right
example8th("8th upstem top right", 10, 9, Up).touch(),
//touching top left
example8th("8th upstem top left", 9, 10, Up).touch(),
//touching both sides
example8th("8th upstem top both", 9, 9, Up).touch(),
//no touch
example8th("8th upstem top none", 10, 10, Up),
//Below staff
example8th("8th upstem bottom right", -1, 0, Up).touch(),
//touching top left
example8th("8th upstem bottom left", 0, -1, Up).touch(),
//touching both sides
example8th("8th upstem bottom both", 0, 0, Up).touch(),
//no touch
example8th("8th upstem bottom none", -1, -1, Up),
//Within staff
example8th("8th upstem within 1", 2, 6, Up).touch(),
example8th("8th upstem within 2", 6, 2, Up).touch(),
//Crossing staff
example8th("8th upstem crossing", -4, 12, Up).touch(),
//Downstem beams
//Above staff
//touching top right
example8th("8th downstem top right", 9, 8, Down).touch(),
//touching top left
example8th("8th downstem top left", 8, 9, Down).touch(),
//touching both sides
example8th("8th downstem top both", 8, 8, Down).touch(),
//no touch
example8th("8th downstem top none", 9, 9, Down),
//Below staff
example8th("8th downstem bottom right", -2, -1, Down).touch(),
//touching top left
example8th("8th downstem bottom left", -1, -2, Down).touch(),
//touching both sides
example8th("8th downstem bottom both", -1, -1, Down).touch(),
//no touch
example8th("8th downstem bottom none", -2, -2, Down),
//Within staff
example8th("8th downstem within 1", 2, 6, Down).touch(),
example8th("8th downstem within 2", 6, 2, Down).touch(),
//Crossing staff
example8th("8th downstem crossing", -4, 12, Down).touch(),
//32nd beams
//Upstem beams
//Above staff
//touching top right
example32nd("32nd upstem top right", 13, 12, Up).touch(),
//touching top left
example32nd("32nd upstem top left", 12, 13, Up).touch(),
//touching both sides
example32nd("32nd upstem top both", 12, 12, Up).touch(),
//no touch
example32nd("32nd upstem top none", 13, 13, Up),
//Below staff
example32nd("32nd upstem bottom right", -1, 0, Up).touch(),
//touching top left
example32nd("32nd upstem bottom left", 0, -1, Up).touch(),
//touching both sides
example32nd("32nd upstem bottom both", 0, 0, Up).touch(),
//no touch
example32nd("32nd upstem bottom none", -1, -1, Up),
//Within staff
example32nd("32nd upstem within 1", 2, 6, Up).touch(),
example32nd("32nd upstem within 2", 6, 2, Up).touch(),
//Crossing staff
example32nd("32nd upstem crossing", -6, 14, Up).touch(),
//Downstem beams
//Above staff
//touching top right
example32nd("32nd downstem top right", 9, 8, Down).touch(),
//touching top left
example32nd("32nd downstem top left", 8, 9, Down).touch(),
//touching both sides
example32nd("32nd downstem top both", 8, 8, Down).touch(),
//no touch
example32nd("32nd downstem top none", 9, 9, Down),
//Below staff
example32nd("32nd downstem bottom right", -5, -4, Down).touch(),
//touching top left
example32nd("32nd downstem bottom left", -4, -5, Down).touch(),
//touching both sides
example32nd("32nd downstem bottom both", -4, -4, Down).touch(),
//no touch
example32nd("32nd downstem bottom none", -5, -5, Down),
//Within staff
example32nd("32nd downstem within 1", 2, 6, Down).touch(),
example32nd("32nd downstem within 2", 6, 2, Down).touch(),
//Crossing staff
example32nd("32nd downstem crossing", -6, 14, Down).touch()
);
}