コード例 #1
0
ファイル: QuadTree.cs プロジェクト: BlueBananasaurus/BP
        public List <RectangleF> FindRecWithVector(Vector2 vec)
        {
            List <RectangleF> rectangles = new List <RectangleF>();

            if (HasChilds == true)
            {
                if (CompareF.RectangleVsVector2NotEq(LeftBottom.Boundary, vec) == true)
                {
                    rectangles.AddRange(LeftBottom.FindRecWithVector(vec));
                }
                if (CompareF.RectangleVsVector2NotEq(LeftTop.Boundary, vec) == true)
                {
                    rectangles.AddRange(LeftTop.FindRecWithVector(vec));
                }
                if (CompareF.RectangleVsVector2NotEq(RightBottom.Boundary, vec) == true)
                {
                    rectangles.AddRange(RightBottom.FindRecWithVector(vec));
                }
                if (CompareF.RectangleVsVector2NotEq(RightTop.Boundary, vec) == true)
                {
                    rectangles.AddRange(RightTop.FindRecWithVector(vec));
                }

                return(rectangles);
            }
            else
            {
                if (LevelSize == QuadTreeSizes.Size_32 && Holder != null && CompareF.RectangleVsVector2NotEq(vec, Boundary) == true)
                {
                    rectangles.Add(Holder);
                    return(rectangles);
                }

                return(rectangles);
            }
        }