private bool TakesOtherWallsPlace(Wall newWall)
 {
     return(materials.GetWalls().Any(wall => wall.Overlaps(newWall)));
 }
 private ICollection <Wall> WallsIntersectedByThisOne(Wall newWall)
 {
     return(materials.GetWalls().Where(wall => wall.DoesIntersect(newWall)).ToList());
 }
 private bool IntersectsOtherWalls(Wall aWall)
 {
     return(WallsIntersectedByThisOne(aWall).Any());
 }
 private bool WallInRange(Wall newWall)
 {
     return(PointInRange(newWall.Beginning()) && PointInRange(newWall.End()));
 }
 private bool Oversized(Wall aWall)
 {
     return(aWall.Length() > Constants.MAX_WALL_LENGTH);
 }
 private void PlaceNewWall(Wall newWall)
 {
     PlaceUnintersectedWall(newWall);
     AdjustIntersection(newWall.Beginning());
     AdjustIntersection(newWall.End());
 }