public BasicQuadTreeNode(BasicQuadTreeNode parent, string quadID, short leftX, short leftY, short width, short height) { m_parent = parent; m_quadID = quadID; m_leftX = leftX; m_leftY = leftY; m_width = width; m_height = height; // m_log.Debug("creating quadtree node " + m_quadID); }
protected internal SceneGraph(Scene parent, RegionInfo regInfo) { m_parentScene = parent; m_regInfo = regInfo; QuadTree = new BasicQuadTreeNode(null, "/0/", 0, 0, (short)Constants.RegionSize, (short)Constants.RegionSize); QuadTree.Subdivide(); QuadTree.Subdivide(); }
protected internal SceneGraph(Scene parent, RegionInfo regInfo) { _transactionMgr = new SceneTransactionManager(this); m_parentScene = parent; m_regInfo = regInfo; QuadTree = new BasicQuadTreeNode(null, "/0/", 0, 0, (short)Constants.RegionSize, (short)Constants.RegionSize); QuadTree.Subdivide(); QuadTree.Subdivide(); }
public void Subdivide() { if (m_childNodes == null) { m_childNodes = new BasicQuadTreeNode[4]; m_childNodes[0] = new BasicQuadTreeNode(this, m_quadID + "1/", m_leftX, m_leftY, (short) (m_width/2), (short) (m_height/2)); m_childNodes[1] = new BasicQuadTreeNode(this, m_quadID + "2/", (short) (m_leftX + (m_width/2)), m_leftY, (short) (m_width/2), (short) (m_height/2)); m_childNodes[2] = new BasicQuadTreeNode(this, m_quadID + "3/", m_leftX, (short) (m_leftY + (m_height/2)), (short) (m_width/2), (short) (m_height/2)); m_childNodes[3] = new BasicQuadTreeNode(this, m_quadID + "4/", (short) (m_leftX + (m_width/2)), (short) (m_height + (m_height/2)), (short) (m_width/2), (short) (m_height/2)); } else { for (int i = 0; i < m_childNodes.Length; i++) { m_childNodes[i].Subdivide(); } } }