/// <summary> /// Method to remove a feature from a bin /// </summary> /// <param name="searchFeature"></param> /// <returns></returns> internal bool Remove(SbnFeature searchFeature) { if (!Intersects(searchFeature.MinX, searchFeature.MinY, searchFeature.MaxX, searchFeature.MaxY)) { return(false); } if (FeatureCount > 0) { var searchBin = FirstBin; for (var i = 0; i < FeatureCount; i++) { var j = i % 100; if (i > 100 && j == 0) { searchBin = searchBin.Next; } if (searchBin[j].Fid == searchFeature.Fid) { searchBin.RemoveAt(j); return(true); } } } if (Nid < _tree.FirstLeafNodeId) { return(Child1.Remove(searchFeature) || Child2.Remove(searchFeature)); } return(false); }