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