public IEnumerable <int> Cull(Common.Bounding.IBounding bounding) { if (id != -1) { yield return(id); } else { Common.Bounding.EVHLinePlacement p = bounding.VHLinePlacement(verticalSplit, split); if (p == Common.Bounding.EVHLinePlacement.LeftTop || p == Common.Bounding.EVHLinePlacement.Intersect) { foreach (int i in children[0].Cull(bounding)) { yield return(i); } } if (p == Common.Bounding.EVHLinePlacement.RightBottom || p == Common.Bounding.EVHLinePlacement.Intersect) { foreach (int i in children[1].Cull(bounding)) { yield return(i); } } } }
public IEnumerable <int> Cull(Common.Bounding.IBounding bounding) { return(root.Cull(bounding)); }