//存入 public bool SetLeaf(Leaf leaf) { if (_root._field.Contains(leaf.position)) { return(_root.DoSetLeaf(leaf)); } else { _root.UpwardGrouth(leaf.position); SetLeaf(leaf); } return(false); }
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); }