Advertisement
Guest User

Untitled

a guest
Jun 20th, 2011
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1.       public static bool AABBIsOverlapping(SSSPBody mBody1, SSSPBody mBody2)
  2.         {
  3.             if(mBody1.CornerMax.X <= mBody2.CornerMin.X || mBody1.CornerMin.X >= mBody2.CornerMax.X)
  4.                 return false;
  5.             if (mBody1.CornerMax.Y <= mBody2.CornerMin.Y || mBody1.CornerMin.Y >= mBody2.CornerMax.Y)
  6.                 return false;
  7.  
  8.             return true;
  9.         }
  10.         public static bool AABBIsColliding(SSSPBody mBody1, SSSPBody mBody2)
  11.         {
  12.             if (mBody1.CornerMax.X < mBody2.CornerMin.X || mBody1.CornerMin.X > mBody2.CornerMax.X)
  13.                 return false;
  14.             if (mBody1.CornerMax.Y < mBody2.CornerMin.Y || mBody1.CornerMin.Y > mBody2.CornerMax.Y)
  15.                 return false;
  16.  
  17.             return true;
  18.         }
  19.         public static bool AABBIsCollidingTop(SSSPBody mBody1, SSSPBody mBody2)
  20.         {
  21.             if (mBody1.CornerMax.X < mBody2.CornerMin.X || mBody1.CornerMin.X > mBody2.CornerMax.X)
  22.                 return false;
  23.             if (mBody1.CornerMax.Y < mBody2.CornerMin.Y || mBody1.CornerMin.Y > mBody2.CornerMax.Y)
  24.                 return false;
  25.  
  26.             if(mBody1.CornerMax.Y == mBody2.CornerMin.Y)
  27.                 return true;
  28.  
  29.             return false;
  30.         }
  31.         public static Vector2 AABBGetOverlapVector(float mLeft, float mRight, float mTop, float mBottom)
  32.         {
  33.             Vector2 result = new Vector2(0, 0);
  34.  
  35.             if ((mLeft > 0 || mRight < 0) || (mTop > 0 || mBottom < 0))
  36.                 return result;
  37.  
  38.             if (Math.Abs(mLeft) < mRight)
  39.                 result.X = mLeft;
  40.             else
  41.                 result.X = mRight;
  42.  
  43.             if (Math.Abs(mTop) < mBottom)
  44.                 result.Y = mTop;
  45.             else
  46.                 result.Y = mBottom;
  47.  
  48.             if (Math.Abs(result.X) < Math.Abs(result.Y))
  49.                 result.Y = 0;
  50.             else
  51.                 result.X = 0;
  52.  
  53.             return result;
  54.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement