/// <summary> /// Check if a polygon has a specified winding. /// </summary> public static bool HasWinding( this Polygon2d polygon, Winding winding) { var winFun = winding == Winding.CCW ? c_ccwFun : c_cwFun; var ef = polygon.Edge(0); var e0 = polygon.Edge(1); var orientation = winFun(ef, e0); for (int i = 2; i < polygon.PointCount; i++) { var e1 = polygon.Edge(i); if (winFun(e0, e1) != orientation) { return(false); } e0 = e1; } return(winFun(e0, ef) == orientation); }