public void TryDeleteSubdivision(OctreeItem item) { if (!ReferenceEquals(this, Root) && !DeleteItems()) { foreach (var child in parent.Childs) { child.RemoveNode(parent.Childs.Where(i => !ReferenceEquals(i, this)).ToArray()); } parent.EraseChildNodes(); } else { items.Remove(item); item.nodes.Remove(this); } }