internal void MbrRemovalUpdate(Rectangle removed) { if (EntryCount == 0) { Mbr = null; } else if (Mbr.OverlapsWith(removed)) { Mbr = Entries[0].Copy(); for (var i = 1; i < EntryCount; i++) { Mbr.AddRectangle(Entries[i]); } } }
internal void AddEntry(Rectangle rectangle, int id) { Debug.Assert(EntryCount < Entries.Length); Entries[EntryCount] = rectangle.Copy(); Ids[EntryCount] = id; EntryCount++; if (Mbr == null) { Mbr = rectangle.Copy(); } else { Mbr.AddRectangle(rectangle); } }