public interface IConvexHull {
/**
* Return the computed convex hull for the input set of IPoint objects.
*
* Points must have at least three points to do anything meaningful. If
* it does not, then the sorted array is returned as the "hull".
*
* Some implementations may be able to work if duplicate points are found,
* but the set should contain distinct IPoint objects.
*
* @param points a set of (n ≥ 3) two dimensional points.
*/
public IPoint[] compute (IPoint[] points);
}
The hull is formed by a clockwise ordering of h points L0 … Lh–1. The first point
L0 is typically the leftmost point in the set P (although any point can be the
start). Each sequence of three hull points Li, Li+1, Li+2 creates a right turn;
note that this property holds for Lh–2, Lh–1, L0 as well.