///// Methods ///// public void AddBody(IQuadTreeBody body) { if (_childA != null) { var child = GetQuadrant(body.Position); child.AddBody(body); } else { _bodies.Add(body); if (_bodies.Count > _maxBodiesPerNode && _curLevel < _maxLevel) { Split(); } } }
public void AddBody(IQuadTreeBody body) { if (this.childA != null) { var child = GetQuadrant(body.Position); child.AddBody(body); } else { this.bodies.Add(body); if (this.bodies.Count > this.maxBodiesPerNode && this.curLevel < this.maxLevel) { Split(); } } }
///// Methods ///// public void AddBody(IQuadTreeBody body) { if (_childA != null) { //如果有子节点,获取在哪个子节点(象限),并在加在其子节点上 var child = GetQuadrant(body.Position); child.AddBody(body); } else { //如果没有子节点,根据条件判断是否需要分割成子节点 //如果判定需要分割成子节点,那么对象都要添加到子节点上,父节点不再保留 _bodies.Add(body); body.quadTree = this; if (_bodies.Count > _maxBodiesPerNode && _curLevel < _maxLevel) { Split(); } } }
public void AddBodyToRoot(IQuadTreeBody body) { root.AddBody(body); }