Esempio n. 1
0
        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);
        }