示例#1
0
 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));
 }
示例#2
0
 public T RemoveNode(float x, float y, float z, T obj)
 {
     return(Top.RemoveNode(x, y, z, obj));
 }