public void PolyPolyIntersect_SimpleBoolean_Negative() { var p0 = new Polygon(new Vector2[] { new Vector2(-50.0f, 50.0f), new Vector2(50.0f, 50.0f), new Vector2(50.0f, -50.0f), new Vector2(-50.0f, -50.0f) }); var p1 = new Polygon(new Vector2[] { new Vector2(0.0f, 60.0f), new Vector2(-50.0f, 120.0f), new Vector2(50.0f, 120.0f) }); var result = PolygonIntersection.PolygonPolygonIntersect(p0, p1); Assert.False(result); }
public void PolyPolyIntersect_SimpleBoolean_Positive() { var p0 = new Polygon(new Vector2[] { new Vector2(-50.0f, 50.0f), new Vector2(50.0f, 50.0f), new Vector2(50.0f, -50.0f), new Vector2(-50.0f, -50.0f) }); var p1 = new Polygon(new Vector2[] { new Vector2(0.0f, 40.0f), new Vector2(-50.0f, 100.0f), new Vector2(50.0f, 100.0f) }); var result = PolygonIntersection.PolygonPolygonIntersect(p0, p1); Assert.True(result); }
public void PolyPolyIntersect_FullOverload_NegativeOnEdge() { var p0 = new Polygon(new Vector2[] { new Vector2(-50.0f, 50.0f), new Vector2(50.0f, 50.0f), new Vector2(50.0f, -50.0f), new Vector2(-50.0f, -50.0f) }); var p1 = new Polygon(new Vector2[] { new Vector2(0.0f, 50.0f), new Vector2(-50.0f, 100.0f), new Vector2(50.0f, 100.0f) }); var result = PolygonIntersection.PolygonPolygonIntersect(p0, p1, 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 PolyPolyIntersect_FullOverload_PositiveOnEdge() { var p0 = new Polygon(new Vector2[] { new Vector2(-50.0f, 50.0f), new Vector2(50.0f, 50.0f), new Vector2(50.0f, -50.0f), new Vector2(-50.0f, -50.0f) }); var p1 = new Polygon(new Vector2[] { new Vector2(0.0f, 49.9999f),//Due to the epsilon impact on fireonedge.. new Vector2(-50.0f, 100.0f), new Vector2(50.0f, 100.0f) }); var result = PolygonIntersection.PolygonPolygonIntersect(p0, p1, true); Assert.True(result.Intersecting); Assert.Equal(0.0f, result.Depth, 3); Assert.Equal(0.0f, result.Normal0To1.X, 3); Assert.Equal(1.0f, result.Normal0To1.Y, 3); Assert.Equal(0.0f, result.Point.X, 3); Assert.Equal(0.0f, result.Point.Y, 3); }
public void PolyPolyIntersect_FullOverload_Positive() { var p0 = new Polygon(new Vector2[] { new Vector2(-50.0f, 50.0f), new Vector2(50.0f, 50.0f), new Vector2(50.0f, -50.0f), new Vector2(-50.0f, -50.0f) }); var p1 = new Polygon(new Vector2[] { new Vector2(0.0f, 40.0f), new Vector2(-50.0f, 100.0f), new Vector2(50.0f, 100.0f) }); var result = PolygonIntersection.PolygonPolygonIntersect(p0, p1, true); Assert.True(result.Intersecting); Assert.Equal(10.0f, result.Depth, 4); Assert.Equal(0.0f, result.Normal0To1.X, 4); Assert.Equal(1.0f, result.Normal0To1.Y, 4); Assert.Equal(0.0f, result.Point.X, 4); Assert.Equal(0.0f, result.Point.Y, 4); }