public static void Transform(BoundingBox2 value, Matrix matrix, Vector2[] corners) { value.GetCorners(corners); for (int i = 0; i < 4; i++) corners[i] = Vector2.Transform(corners[i], matrix); }
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 static void Transform(BoundingBox2 value, Matrix matrix, Vector2[] corners) { value.GetCorners(corners); for (int i = 0; i < 4; i++) { corners[i] = Vector2.Transform(corners[i], matrix); } }
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 Viewport GetDisplayViewport(Viewport virtualViewport) { BoundingBox2 virtualBox = new BoundingBox2(0, 0, _virtualWidth, _virtualHeight); BoundingBox2 box = virtualBox.Intersection(new BoundingBox2(virtualViewport.Bounds)); box.Min = Vector2.Transform(box.Min, _transformMatrix); box.Max = Vector2.Transform(box.Max, _transformMatrix); Viewport displayViewport = new Viewport(box.ToRectangle()); displayViewport.X += _displayViewport.X; displayViewport.Y += _displayViewport.Y; return(displayViewport); }
public BoundingBox2 Intersection(BoundingBox2 value) { if (Min.X > value.Min.X) { value.Min.X = Min.X; } if (Max.X < value.Max.X) { value.Max.X = Max.X; } if (Min.Y > value.Min.Y) { value.Min.Y = Min.Y; } if (Max.Y < value.Max.Y) { value.Max.Y = Max.Y; } return(value); }
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 static Vector2[] Transform(BoundingBox2 value, Matrix matrix) { Vector2[] corners = new Vector2[4]; Transform(value, matrix, corners); return(corners); }
public void Intersects(ref BoundingBox2 box, out float?result) { throw new NotImplementedException(); }
public float?Intersects(BoundingBox2 box) { throw new NotImplementedException(); }
public static bool Intersects(BoundingBox2 value1, BoundingBox2 value2) { return(value1.Max.Y > value2.Min.Y && value1.Min.Y < value2.Max.Y && value1.Max.X > value2.Min.X && value1.Min.X < value2.Max.X); }
public void Intersects(ref BoundingBox2 value, out bool result) { result = value.Max.Y > Min.Y && value.Min.Y <Max.Y && value.Max.X> Min.X && value.Min.X < Max.X; }
public bool Intersects(BoundingBox2 value) { return(value.Max.Y > Min.Y && value.Min.Y < Max.Y && value.Max.X > Min.X && value.Min.X < Max.X); }
public bool Intersects(BoundingBox2 value) { return value.Max.Y > Min.Y && value.Min.Y < Max.Y && value.Max.X > Min.X && value.Min.X < Max.X; }
public Viewport GetDisplayViewport(Viewport virtualViewport) { BoundingBox2 virtualBox = new BoundingBox2(0, 0, _virtualWidth, _virtualHeight); BoundingBox2 box = virtualBox.Intersection(new BoundingBox2(virtualViewport.Bounds)); box.Min = Vector2.Transform(box.Min, _transformMatrix); box.Max = Vector2.Transform(box.Max, _transformMatrix); Viewport displayViewport = new Viewport(box.ToRectangle()); displayViewport.X += _displayViewport.X; displayViewport.Y += _displayViewport.Y; return displayViewport; }
public void Intersects(ref BoundingBox2 value, out bool result) { result = value.Max.Y > Min.Y && value.Min.Y < Max.Y && value.Max.X > Min.X && value.Min.X < Max.X; }
public static Vector2[] Transform(BoundingBox2 value, Matrix matrix) { Vector2[] corners = new Vector2[4]; Transform(value, matrix, corners); return corners; }
public static bool Intersects(BoundingBox2 value1, BoundingBox2 value2) { return value1.Max.Y > value2.Min.Y && value1.Min.Y < value2.Max.Y && value1.Max.X > value2.Min.X && value1.Min.X < value2.Max.X; }
public BoundingBox2 Union(BoundingBox2 value) { if (Min.X < value.Min.X) value.Min.X = Min.X; if (Max.X > value.Max.X) value.Max.X = Max.X; if (Min.Y < value.Min.Y) value.Min.Y = Min.Y; if (Max.Y > value.Max.Y) value.Max.Y = Max.Y; return value; }