Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static bool AABBIsOverlapping(SSSPBody mBody1, SSSPBody mBody2)
- {
- if(mBody1.CornerMax.X <= mBody2.CornerMin.X || mBody1.CornerMin.X >= mBody2.CornerMax.X)
- return false;
- if (mBody1.CornerMax.Y <= mBody2.CornerMin.Y || mBody1.CornerMin.Y >= mBody2.CornerMax.Y)
- return false;
- return true;
- }
- public static bool AABBIsColliding(SSSPBody mBody1, SSSPBody mBody2)
- {
- if (mBody1.CornerMax.X < mBody2.CornerMin.X || mBody1.CornerMin.X > mBody2.CornerMax.X)
- return false;
- if (mBody1.CornerMax.Y < mBody2.CornerMin.Y || mBody1.CornerMin.Y > mBody2.CornerMax.Y)
- return false;
- return true;
- }
- public static bool AABBIsCollidingTop(SSSPBody mBody1, SSSPBody mBody2)
- {
- if (mBody1.CornerMax.X < mBody2.CornerMin.X || mBody1.CornerMin.X > mBody2.CornerMax.X)
- return false;
- if (mBody1.CornerMax.Y < mBody2.CornerMin.Y || mBody1.CornerMin.Y > mBody2.CornerMax.Y)
- return false;
- if(mBody1.CornerMax.Y == mBody2.CornerMin.Y)
- return true;
- return false;
- }
- public static Vector2 AABBGetOverlapVector(float mLeft, float mRight, float mTop, float mBottom)
- {
- Vector2 result = new Vector2(0, 0);
- if ((mLeft > 0 || mRight < 0) || (mTop > 0 || mBottom < 0))
- return result;
- if (Math.Abs(mLeft) < mRight)
- result.X = mLeft;
- else
- result.X = mRight;
- if (Math.Abs(mTop) < mBottom)
- result.Y = mTop;
- else
- result.Y = mBottom;
- if (Math.Abs(result.X) < Math.Abs(result.Y))
- result.Y = 0;
- else
- result.X = 0;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement