public void CirclePolyIntersect_SimpleBoolean_Negative()
        {
            var c = new Circle(new Vector2(0.0f, 0.0f), 10.0f);
            var p = Polygon.CreateRegularNSidedPolygon(new Vector2(25.0f, 0.0f), 4, 10.0f);

            var result = PolygonIntersection.CirclePolygonIntersect(c.Position, c.Radius, p);

            Assert.False(result);
        }
        public void CirclePolyIntersect_OnEdge_Negative()
        {
            var c = new Circle(new Vector2(0.0f, 0.0f), 10.0f);
            var p = Polygon.CreateRegularNSidedPolygon(new Vector2(25.0f, 0.0f), 4, 10.0f);

            var result = PolygonIntersection.CirclePolygonIntersect(c.Position, c.Radius, p, false);

            Assert.False(result.Intersecting);
            Assert.Equal(0.0f, result.Depth, 4);
            Assert.Equal(0.0f, result.Normal0To1.X, 4);
            Assert.Equal(0.0f, result.Normal0To1.Y, 4);
            Assert.Equal(0.0f, result.Point.X, 4);
            Assert.Equal(0.0f, result.Point.Y, 4);;
        }
        public void CirclePolyIntersect_OnEdge_Positive()
        {
            var c = new Circle(new Vector2(0.0f, 0.0f), 10.0f);
            var p = Polygon.CreateRegularNSidedPolygon(new Vector2(19.9999f, 0.0f), 4, 10.0f); //issue here again with epsilon i think...

            var result = PolygonIntersection.CirclePolygonIntersect(c.Position, c.Radius, p, true);

            Assert.True(result.Intersecting);
            Assert.Equal(0.0f, result.Depth, 3);
            Assert.Equal(1.0f, result.Normal0To1.X, 3);
            Assert.Equal(0.0f, result.Normal0To1.Y, 3);
            Assert.Equal(0.0f, result.Point.X, 3);
            Assert.Equal(0.0f, result.Point.Y, 3);;
        }
        public void CirclePolyIntersect_SimpleResult_Positive()
        {
            var c = new Circle(new Vector2(0.0f, 0.0f), 10.0f);
            var p = Polygon.CreateRegularNSidedPolygon(new Vector2(15.0f, 0.0f), 4, 10.0f);

            var result = PolygonIntersection.CirclePolygonIntersect(c, p);

            Assert.True(result.Intersecting);
            Assert.Equal(5.0f, result.Depth, 4);
            Assert.Equal(1.0f, result.Normal0To1.X, 4);
            Assert.Equal(0.0f, result.Normal0To1.Y, 4);
            Assert.Equal(0.0f, result.Point.X, 4);
            Assert.Equal(0.0f, result.Point.Y, 4);;
        }