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);; }