public static BoundingRect Union(BoundingRect rect1, BoundingRect rect2) { BoundingRect result; float num6 = rect1.Max.X; float num5 = rect2.Max.X; float num4 = rect1.Max.Y; float num3 = rect2.Max.Y; float num2 = (rect1.Min.X < rect2.Min.X) ? rect1.Min.X : rect2.Min.X; float num = (rect1.Min.Y < rect2.Min.Y) ? rect1.Min.Y : rect2.Min.Y; float num8 = (num6 > num5) ? num6 : num5; float num7 = (num4 > num3) ? num4 : num3; result.Min.X = num2; result.Min.Y = num; result.Max.X = num8; result.Max.Y = num7; return(result); }
public static void Intersect(ref BoundingRect rect1, ref BoundingRect rect2, out BoundingRect result) { float num8 = rect1.Max.X; float num7 = rect2.Max.X; float num6 = rect1.Max.Y; float num5 = rect2.Max.Y; float num2 = (rect1.Min.X > rect2.Min.X) ? rect1.Min.X : rect2.Min.X; float num = (rect1.Min.Y > rect2.Min.Y) ? rect1.Min.Y : rect2.Min.Y; float num4 = (num8 < num7) ? num8 : num7; float num3 = (num6 < num5) ? num6 : num5; if ((num4 > num2) && (num3 > num)) { result.Min.X = num2; result.Min.Y = num; result.Max.X = num4; result.Max.Y = num3; } result.Min.X = 0; result.Min.Y = 0; result.Max.X = 0; result.Max.Y = 0; }
static BoundingRect() { mEmpty = new BoundingRect(); mMinMax = new BoundingRect(Vector2.One * float.MinValue, Vector2.One * float.MaxValue); }