public List <C2DHoledPolygon> GetIntersectingPolygons(IList <C2DPoint> pointsA, IList <C2DPoint> pointsB, IntersectionType whichPolygons) { var leftPoly = new C2DPolygon(pointsA.ToList(), true); var rightPoly = new C2DPolygon(pointsB.ToList(), true); rightPoly.RandomPerturb(); var someGrid = new CGrid(); var smallPolygons = new List <C2DHoledPolygon>(); switch (whichPolygons) { case IntersectionType.Overlapping: leftPoly.GetOverlaps(rightPoly, smallPolygons, someGrid); break; case IntersectionType.NonOverlapping: leftPoly.GetNonOverlaps(rightPoly, smallPolygons, someGrid); break; default: throw new ArgumentException(nameof(whichPolygons)); } return(smallPolygons); }