Beispiel #1
0
 //存入
 public bool SetLeaf(Leaf leaf)
 {
     if (_root._field.Contains(leaf.position))
     {
         return(_root.DoSetLeaf(leaf));
     }
     else
     {
         _root.UpwardGrouth(leaf.position);
         SetLeaf(leaf);
     }
     return(false);
 }
Beispiel #2
0
        bool SetLeafToChildren(Leaf leaf)
        {
            if (_upperRightChild._field.Contains(leaf.position))
            {
                return(_upperRightChild.DoSetLeaf(leaf));
            }
            if (_lowerRightChild._field.Contains(leaf.position))
            {
                return(_lowerRightChild.DoSetLeaf(leaf));
            }
            if (_lowerLeftChild._field.Contains(leaf.position))
            {
                return(_lowerLeftChild.DoSetLeaf(leaf));
            }
            if (_upperLeftChild._field.Contains(leaf.position))
            {
                return(_upperLeftChild.DoSetLeaf(leaf));
            }

            //增加反向生长后正常情况下应该不会走到这一步
            Debug.LogError("向位置在" + _field.top + "," + _field.right + "," + _field.bottom + "," + _field.left + "的节点存入叶子时发生错误:叶子不在所有子节点的范围里。");
            return(false);
        }