public void InsertObject(CNode node, OBJECT obj) { RECTANGLE rect = RECTANGLE.Intersec(node.m_bound, obj.RangeOfMovement); if (rect.cX == 0 && rect.cY == 0 && rect.width == 0 && rect.height == 0) { return; } if (node.m_bound.width >= (MAX_HEIGHT_SIZE_OF_NODE + 10) && node.m_bound.height > (MAX_HEIGHT_SIZE_OF_NODE + 10)) { if (node.m_tl == null) { node.m_tl = new CNode(node.m_id, PositionOfNode.TopLeft, node.Bound); node.m_tr = new CNode(node.m_id, PositionOfNode.TopRight, node.Bound); node.m_bl = new CNode(node.m_id, PositionOfNode.BottomLeft, node.Bound); node.m_br = new CNode(node.m_id, PositionOfNode.BottomRight, node.Bound); } node.InsertObject(node.m_tl, obj); node.InsertObject(node.m_tr, obj); node.InsertObject(node.m_bl, obj); node.InsertObject(node.m_br, obj); } else { node.m_listObject.Add(obj); } return; }
public void InsertObject(CNode node, OBJECT obj) { RECTANGLE rect = RECTANGLE.Intersec(node.m_bound, obj.RangeOfMovement); if (rect.cX == 0 && rect.cY == 0 && rect.width == 0 && rect.height == 0) { return; } node.m_listObject.Add(obj); return; }