public bool Intersects(Polygon polygon) { foreach (Vector2 vertex in polygon) { if (ContainsInclusive(vertex)) { return(true); } } foreach (Line edge in Edges()) { if (polygon.Intersects(edge).Length > 0 || polygon.IsInside(edge.PointA)) { return(true); } } return(false); }