private static bool contoursIntersect(Contour c1, Contour c2) { if (!c1.GetBoundingRectangle().Intersects(c2.GetBoundingRectangle())) return false; ICoordinate pointStub = null; Segment segmentStub = new Segment(); Segment segment1 = new Segment(c1.Vertices[0], c1.Vertices[1]); Segment segment2 = new Segment(c1.Vertices[2], c1.Vertices[3]); Segment segment3 = new Segment(c2.Vertices[0], c2.Vertices[1]); Segment segment4 = new Segment(c2.Vertices[3], c2.Vertices[3]); if (PlanimetryAlgorithms.SegmentsIntersection(segment1, segment3, out pointStub, out segmentStub) != Dimension.None || PlanimetryAlgorithms.SegmentsIntersection(segment1, segment4, out pointStub, out segmentStub) != Dimension.None || PlanimetryAlgorithms.SegmentsIntersection(segment2, segment3, out pointStub, out segmentStub) != Dimension.None || PlanimetryAlgorithms.SegmentsIntersection(segment2, segment4, out pointStub, out segmentStub) != Dimension.None) return true; return false; }