Example #1
0
        public void FRect_CollidedSidesWithTouch()
        {
            FRect A = new FRect(0, 0, 5, 5);
            FRect B = new FRect(-4, 0, 5, 5);
            FRect C = new FRect(-2, -2, 6, 8);
            FRect D = new FRect(-20, -20, 1, 1);
            FRect E = new FRect(1, 1, 3, 3);
            FRect F = new FRect(-1, 0, 5, 5);

            Collision.RectSide side = Collision.CollidedSidesWithTouch(A, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Equal), "1");

            side = Collision.CollidedSidesWithTouch(B, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Left) &&
                         side.IsSet(Collision.RectSide.Top) &&
                         side.IsSet(Collision.RectSide.Bottom),
                         "2");

            side = Collision.CollidedSidesWithTouch(C, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Left) &&
                         side.IsSet(Collision.RectSide.Top) &&
                         side.IsSet(Collision.RectSide.Bottom),
                         "3");

            side = Collision.CollidedSidesWithTouch(D, A);
            Debug.Assert(side.IsSet(Collision.RectSide.None), "4");

            side = Collision.CollidedSidesWithTouch(F, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Left) &&
                         side.IsSet(Collision.RectSide.Top) &&
                         side.IsSet(Collision.RectSide.Bottom),
                         "5");
        }
 public static bool IsNotSet(this Collision.RectSide side, Collision.RectSide flags)
 {
     return((side & (~flags)) == 0);
 }
 public static Collision.RectSide Clear(this Collision.RectSide side, Collision.RectSide flags)
 {
     return(side & (~flags));
 }
 public static bool IsSet(this Collision.RectSide side, Collision.RectSide flags)
 {
     return((side & flags) == flags);
 }
 public static Collision.RectSide Set(this Collision.RectSide side, Collision.RectSide flags)
 {
     return(side | flags);
 }