public void CutOutNonIntersectingTest()
        {
            List<Vector2> horizontalRectVertices = new List<Vector2>()
            {
                new Vector2(0, 0), new Vector2(2, 0), new Vector2(2, -1), new Vector2(0,-1)
            };
            List<Vector2> squareVertices = new List<Vector2>()
            {
                new Vector2(10,10), new Vector2(11, 10), new Vector2(11, 9), new Vector2(10,9)
            };

            Polygon2D horizontalRect = new Polygon2D(horizontalRectVertices);
            Polygon2D square = new Polygon2D(squareVertices);

            var cutout = Clipper.CutOut(square, horizontalRect);
            Assert.AreEqual(1f, cutout.Area, MathUtil.EPS);

            cutout = Clipper.CutOut(horizontalRect, square);
            Assert.AreEqual(2f, cutout.Area, MathUtil.EPS);
        }
 public void OverlappingClipTest()
 {
     var clipResult = Clipper.CutOut(subjectPoly, clipPoly);
     Assert.AreEqual(resultPoly, clipResult);
 }
 public void CutOutTest2()
 {
     var cutout = Clipper.CutOut(m_horizontalRect, m_verticalRect);
     Assert.AreEqual(6f, cutout.Area, MathUtil.EPS);
 }
 public void CutOutRectFromRectCollinearTest2()
 {
     var remainder = Clipper.CutOut(m_2by1rect, m_1by2rect);
     Assert.AreEqual(1f, remainder.Area, MathUtil.EPS);
 }
 public void CutOutRectFromSquareCollinearTest2()
 {
     var remainder = Clipper.CutOut(m_unitSquare, m_1by2rect);
     Assert.AreEqual(0f, remainder.Area, MathUtil.EPS);
 }
 public void CutOutSquareFromRectCollinearTest1()
 {
     var remainder = Clipper.CutOut(m_2by1rect, m_unitSquare);
     Assert.AreEqual(1f, remainder.Area, MathUtil.EPS);
 }
 public void RepeatCutTest()
 {
     var clipResult = Clipper.CutOut(subjectPoly, clipPoly);
     var nextResult = Clipper.CutOut(clipResult, clipPoly);
     Assert.AreEqual(clipResult, nextResult);
 }