private void Put(IAabb element, IntRect area) { for (int x = area.l; x <= area.r; x++) { for (int y = area.b; y <= area.t; y++) { if (Data[x][y].Contains(element)) { throw new Exception("trying to add but there is already such an element " + area); } Data[x][y].Add(element); element.GetCache().Add(Data[x][y]); } } }
private void Remove(IAabb element, IntRect area) { for (int x = area.l; x <= area.r; x++) { for (int y = area.b; y <= area.t; y++) { if (!Data[x][y].Contains(element)) { throw new Exception("trying to delete but there is no such an element " + area); } Data[x][y].Remove(element); element.GetCache().Remove(Data[x][y]); } } }