예제 #1
0
 public void AddContainedItems(HashSet <T> set, Rect rect)
 {
     NodeTopLeft.AddContainedItems(set, rect);
     NodeTopRight.AddContainedItems(set, rect);
     NodeBottomLeft.AddContainedItems(set, rect);
     NodeBottomRight.AddContainedItems(set, rect);
 }
예제 #2
0
 public void AddIntersectingItems(HashSet <T> set, Rect rect)
 {
     NodeTopLeft.AddIntersectingItems(set, rect);
     NodeTopRight.AddIntersectingItems(set, rect);
     NodeBottomLeft.AddIntersectingItems(set, rect);
     NodeBottomRight.AddIntersectingItems(set, rect);
 }
예제 #3
0
            public IQuadTreeNode AddItem(T item)
            {
                var bounding = _getBounding(item);

                if (NodeTopLeft.Rect.Intersects(bounding))
                {
                    NodeTopLeft = NodeTopLeft.AddItem(item);
                }

                if (NodeTopRight.Rect.Intersects(bounding))
                {
                    NodeTopRight = NodeTopRight.AddItem(item);
                }

                if (NodeBottomLeft.Rect.Intersects(bounding))
                {
                    NodeBottomLeft = NodeBottomLeft.AddItem(item);
                }

                if (NodeBottomRight.Rect.Intersects(bounding))
                {
                    NodeBottomRight = NodeBottomRight.AddItem(item);
                }

                return(this);
            }