public void RectangleOverlap_DetectsFirstRectangleContainsSecondRectangle() { var rec1 = new Rectangle(new Point() { X = -5, Y = -5 }, new Point() { X = 5, Y = 5 }); var rec2 = new Rectangle(new Point() { X = 1, Y = 1 }, new Point() { X = 0, Y = 0 }); rec1.Overlaps(rec2).ShouldBe(true); }
public bool ContainsAnyPortionOf(Rectangle rec) { if(DomainContains(rec.MinPoint) || DomainContains(rec.MaxPoint)) { if (RangeContains(rec.MinPoint) || RangeContains(rec.MaxPoint) || rec.RangeContains(MinPoint) || rec.RangeContains(MaxPoint)) return true; } return false; }
public void RectangleOverlap_DetectsPlusShapedIntersection() { var rec1 = new Rectangle(new Point() { X = -5, Y = 0 }, new Point() { X = 5, Y = 1 }); var rec2 = new Rectangle(new Point() { X = 0, Y = -5 }, new Point() { X = 1, Y = 5 }); rec1.Overlaps(rec2).ShouldBe(true); }
public bool Overlaps(Rectangle rec) { return rec.ContainsAnyPortionOf(this) || ContainsAnyPortionOf(rec); }
public void WhenRectangleCreated_ItSortsItsPointsCorrectly() { Point p1 = new Point() {X = 1, Y = 1}; Point p2 = new Point() {X = 0, Y = 0}; var rec = new Rectangle(p1, p2); rec.MinPoint.X.ShouldBe(0); rec.MinPoint.Y.ShouldBe(0); rec.MaxPoint.X.ShouldBe(1); rec.MaxPoint.Y.ShouldBe(1); }
public void RectanglesDoNotOverlap() { var rec1 = new Rectangle(new Point() { X = -5, Y = -5 }, new Point() { X = -4, Y = -4 }); var rec2 = new Rectangle(new Point() { X = 5, Y = 5 }, new Point() { X = 4, Y = 4 }); rec1.Overlaps(rec2).ShouldBe(false); }