package material.beam.stafftouch;
import com.xenoage.zong.core.music.StaffLines;
import com.xenoage.zong.core.music.chord.StemDirection;
import com.xenoage.zong.musiclayout.spacer.beam.placement.SingleStaffBeamPlacer.Placement;
import lombok.Getter;
import material.ExampleBase;
import material.Suite;
import java.util.List;
import static com.xenoage.utils.collections.CollectionUtils.alist;
import static com.xenoage.zong.core.music.StaffLines.staff5Lines;
/**
* Example of a beams touching the staff.
*
* @author Andreas Wenger
*/
public class TouchExample
implements ExampleBase {
public static List<Suite<TouchExample>> all = alist(new ZongStaffTouch());
@Getter public String name;
public Placement placement;
public StemDirection stemDir;
public float beamHeightIs;
public StaffLines staffLines = staff5Lines;
public boolean touch = false;
public TouchExample touch() {
this.touch = true;
return this;
}
public static TouchExample example8th(String name, double leftLp, double rightLp,
StemDirection stemDir) {
TouchExample ret = new TouchExample();
ret.name = name;
ret.placement = new Placement((float) leftLp, (float) rightLp);
ret.stemDir = stemDir;
ret.beamHeightIs = 0.5f;
return ret;
}
public static TouchExample example32nd(String name, double leftLp, double rightLp,
StemDirection stemDir) {
TouchExample ret = new TouchExample();
ret.name = name;
ret.placement = new Placement((float) leftLp, (float) rightLp);
ret.stemDir = stemDir;
ret.beamHeightIs = 0.5f + 0.25f + 0.5f + 0.25f + 0.5f; //3 lines, 2 gaps
return ret;
}
}