Exemple #1
0
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;
    }
}