main/src/georegression/geometry/UtilPolygons2D_I32.java
public static boolean isCCW( List<Point2D_I32> polygon ) {
		final int N = polygon.size();
		int sign = 0;
		for (int i = 0; i < N; i++) {
			int j = (i+1)%N;
			int k = (i+2)%N;

			if( isPositiveZ(polygon.get(i),polygon.get(j),polygon.get(k))) {
				sign++;
			} else {
				sign--;
			}
		}

		return sign < 0;
	}
public static boolean isCCW( List<Point2D_I32> polygon ) {
		final int N = polygon.size();
		int sign = 0;
		for (int i = 0; i < N; i++) {
			int j = (i+1)%N;
			int k = (i+2)%N;

			if( isPositiveZ(polygon.get(i),polygon.get(j),polygon.get(k))) {
				sign++;
			} else {
				sign--;
			}
		}

		return sign < 0;
	}
Returns true if the polygon is ordered in a counter-clockwise order.  This is done by summing up the interior
angles.

@param polygon List of ordered points which define a polygon
@return true if CCW and false if CW