void CElement::UpdateSpatialData ( void ) { // Avoid recursion if ( !m_bUpdatingSpatialData ) { m_bUpdatingSpatialData = true; GetSpatialDatabase ()->UpdateEntity ( this ); // Also make sure attached entites get updated for ( list < CElement * > ::iterator iter = m_AttachedElements.begin (); iter != m_AttachedElements.end () ; iter++ ) { CElement* pElement = *iter; if ( pElement->GetAttachedToElement () ) { CVector vecPosition; pElement->GetAttachedPosition ( vecPosition ); pElement->SetPosition ( vecPosition ); } } m_bUpdatingSpatialData = false; } }