void Octree::_place (nau::scene::SceneObject *aSceneObject) { static std::list<nau::scene::OctreeNode*> tmpVector; static int octant = 0; OctreeNode* aNode = reinterpret_cast<OctreeNode*> (aSceneObject); if (0 == m_pOctreeRootNode) { m_pOctreeRootNode = aNode; tmpVector.push_back (m_pOctreeRootNode); return; } if (aNode->m_NodeId < octant) { tmpVector.pop_front(); } OctreeNode* currentNode = *(tmpVector.begin()); octant = aNode->m_NodeId; currentNode->_setChild(octant, aNode); if (aNode->_getChildCount() > 0) { tmpVector.push_back (aNode); } }