Returns the orientation of three points. 0: collinear, positive: counterclockwise, negative: clockwise.
double orientation(Point a, Point b, Point c) { return (b - a).cross(c - a); }