package com.xenoage.zong.musiclayout.layouter.curvedline;
import java.util.List;
import com.xenoage.utils.math.VSide;
import com.xenoage.utils.math.geom.Point2f;
import com.xenoage.zong.util.math.CubicBezierCurve;
/**
* Implementations of this strategy compute bezier curves
* for curved lines, given the absolute coordinates of
* the noteheads of the chords connected by the curved line.
*
* All coordinates must be given in line positions, even
* the horizontal ones. If the curved line spans over more
* than a single staff, the line positions of the other staves
* must be expressed as line positions of the staff the first
* chord belongs to.
*
* @author Andreas Wenger
*/
public interface CurvedLineStrategy
{
/**
* Returns a cubic bezier curve that forms a curved line
* over/under the given list of points expressed in LPs, dependend
* on the given side.
*/
public CubicBezierCurve computeCurvedLine(List<Point2f> points, VSide side);
}