EgtGeomKernel :

- gestione cancellazione oggetti puntati da GdbIterator
- aggiunte a GdbIterator EraseAndGoToNext e EraseAndGoToPrev
- possibilità di passare IGeomDB* al costruttore di GdbIterator.
This commit is contained in:
Dario Sassi
2014-03-23 21:38:09 +00:00
parent 155c722466
commit 033236491d
10 changed files with 176 additions and 19 deletions
+19 -1
View File
@@ -620,12 +620,30 @@ GeomDB::Erase( int nId)
if ( pGdbObj == nullptr)
return false ;
return Erase( pGdbObj) ;
}
//----------------------------------------------------------------------------
bool
GeomDB::Erase( GdbObj* pGdbObj)
{
// deve essere valido
if ( pGdbObj == nullptr)
return false ;
// non si può cancellare il gruppo radice
if ( pGdbObj == &m_GrpRadix)
return false ;
// elimino da mappa dei nomi
m_IdManager.RemoveObj( nId) ;
m_IdManager.RemoveObj( pGdbObj->m_nId) ;
// eliminazione eventuale da lista dei selezionati
m_SelManager.RemoveObj( pGdbObj) ;
// sistemazioni in eventuali GdbIterator con quell'oggetto corrente
m_IterManager.ResetObjIfSame( pGdbObj) ;
// lo tolgo dalla lista
pGdbObj->Remove() ;