public T RemoveNode(OctreeLeaf <T> leaf) { if (Branch == null) { // This must be the node that has it... for (int i = 0; i < Items.Count; i++) { var qtl = (OctreeLeaf <T>)Items[i]; if (!leaf.LeafObject.Equals(qtl.LeafObject)) { continue; } Items.RemoveAt(i); return(qtl.LeafObject); } } else { OctreeNode <T> node = GetChild(leaf.X, leaf.Y, leaf.Z); if (node != null) { return(node.RemoveNode(leaf)); } } return(default(T)); }
public T RemoveNode(float x, float y, float z, T obj) { return(Top.RemoveNode(x, y, z, obj)); }