diff --git a/BoundingBox2.cs b/BoundingBox2.cs index 454de61..083ccfe 100644 --- a/BoundingBox2.cs +++ b/BoundingBox2.cs @@ -57,5 +57,25 @@ namespace Quadtree Max.X += expansion; Max.Y += expansion; } + + public void Include(Vector2 position) + { + if (Min.X > position.X) + { + Min.X = position.X; + } + else if (Max.X < position.X) + { + Max.X = position.X; + } + if (Min.Y > position.Y) + { + Min.Y = position.Y; + } + else if (Max.Y < position.Y) + { + Max.Y = position.Y; + } + } } } diff --git a/Quadtree.cs b/Quadtree.cs index a9a06b2..571d614 100644 --- a/Quadtree.cs +++ b/Quadtree.cs @@ -234,7 +234,7 @@ namespace Quadtree item.Next = _vertices[0].FirstChildIndex; _items[itemIndex] = item; _vertices[0] = new QuadtreeVertex(itemIndex, _vertices[0].ChildCount + 1); - IncludeInBoundingBox(ref _rootBoundingBox, position); + _rootBoundingBox.Include(position); } } @@ -416,29 +416,5 @@ namespace Quadtree } } } - - /// - /// Slightly more efficient implementation of BoundingBox.Include(), assuming that Min.X <= Max.X, - /// Min.Z <= Max.Z, and all Y = 0. - /// - private void IncludeInBoundingBox(ref BoundingBox2 boundingBox, Vector2 position) - { - if (boundingBox.Min.X > position.X) - { - boundingBox.Min.X = position.X; - } - else if (boundingBox.Max.X < position.X) - { - boundingBox.Max.X = position.X; - } - if (boundingBox.Min.Y > position.Y) - { - boundingBox.Min.Y = position.Y; - } - else if (boundingBox.Max.Y < position.Y) - { - boundingBox.Max.Y = position.Y; - } - } } }