public bool Intersects(BoundingBox2 value, out Vector2?corner) { corner = null; if (Center.X < value.Min.X && Center.Y < value.Min.Y) { corner = value.Min; } if (Center.X > value.Max.X && Center.Y < value.Min.Y) { corner = new Vector2(value.Max.X, value.Min.Y); } if (Center.X < value.Min.X && Center.Y > value.Max.Y) { corner = new Vector2(value.Min.X, value.Max.Y); } if (Center.X > value.Max.X && Center.Y > value.Max.Y) { corner = value.Max; } if (corner != null) { return(Contains(corner.Value)); } return(value.Intersects(BoundingBox())); }
public bool Intersects(BoundingBox2 value) { if (Center.X < value.Min.X && Center.Y < value.Min.Y) return Contains(value.Min); if (Center.X > value.Max.X && Center.Y < value.Min.Y) return Contains(new Vector2(value.Max.X, value.Min.Y)); if (Center.X < value.Min.X && Center.Y > value.Max.Y) return Contains(new Vector2(value.Min.X, value.Max.Y)); if (Center.X > value.Max.X && Center.Y > value.Max.Y) return Contains(value.Max); return value.Intersects(BoundingBox()); }
public bool Intersects(BoundingBox2 value) { if (Center.X < value.Min.X && Center.Y < value.Min.Y) { return(Contains(value.Min)); } if (Center.X > value.Max.X && Center.Y < value.Min.Y) { return(Contains(new Vector2(value.Max.X, value.Min.Y))); } if (Center.X < value.Min.X && Center.Y > value.Max.Y) { return(Contains(new Vector2(value.Min.X, value.Max.Y))); } if (Center.X > value.Max.X && Center.Y > value.Max.Y) { return(Contains(value.Max)); } return(value.Intersects(BoundingBox())); }
public bool Intersects(BoundingBox2 value, out Vector2? corner) { corner = null; if (Center.X < value.Min.X && Center.Y < value.Min.Y) corner = value.Min; if (Center.X > value.Max.X && Center.Y < value.Min.Y) corner = new Vector2(value.Max.X, value.Min.Y); if (Center.X < value.Min.X && Center.Y > value.Max.Y) corner = new Vector2(value.Min.X, value.Max.Y); if (Center.X > value.Max.X && Center.Y > value.Max.Y) corner = value.Max; if (corner != null) return Contains(corner.Value); return value.Intersects(BoundingBox()); }