Exemple #1
0
        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()));
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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()));
        }
Exemple #4
0
        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());
        }