示例#1
0
 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]);
         }
     }
 }
示例#2
0
        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);
            }
        }