diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 1264ee3..c07d8f6 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/GeomDB.cpp b/GeomDB.cpp index 1405659..cd34112 100644 --- a/GeomDB.cpp +++ b/GeomDB.cpp @@ -230,19 +230,31 @@ GeomDB::LoadOneObj( NgeReader& ngeIn, int nGroupId, int nBaseGdbId, const INTVEC if ( pGdbObj->GetMaterial( nMat) && nMat > 0 && nMat < int( vBaseMatId.size())) pGdbObj->SetMaterial( vBaseMatId[nMat]) ; - // se gruppo, eventuale aggiornamento indici per swap registrato + // se gruppo, eventuale aggiornamento indici per swap registrato e duplo if ( ::GetGdbGroup( pGdbObj) != nullptr) { int nVal ; if ( pGdbObj->GetInfo( GDB_SI_SOURCE, nVal)) pGdbObj->SetInfo( GDB_SI_SOURCE, nVal + nBaseGdbId) ; if ( pGdbObj->GetInfo( GDB_SI_BASE, nVal)) pGdbObj->SetInfo( GDB_SI_BASE, nVal + nBaseGdbId) ; + if ( pGdbObj->GetInfo( GDB_SI_COPY, nVal)) + pGdbObj->SetInfo( GDB_SI_COPY, nVal + nBaseGdbId) ; + if ( pGdbObj->GetInfo( GDB_SI_MGRPONLY, nVal)) + pGdbObj->SetInfo( GDB_SI_MGRPONLY, nVal + nBaseGdbId) ; + if ( pGdbObj->GetInfo( GDB_SI_DUPSOU, nVal)) + pGdbObj->SetInfo( GDB_SI_DUPSOU, nVal + nBaseGdbId) ; INTVECTOR vnVal ; if ( pGdbObj->GetInfo( GDB_SI_LIST, vnVal)) { transform( vnVal.begin(), vnVal.end(), vnVal.begin(), [nBaseGdbId]( const int& nV) { return nV + nBaseGdbId ; }) ; pGdbObj->SetInfo( GDB_SI_LIST, vnVal) ; } + vnVal.clear() ; + if ( pGdbObj->GetInfo( GDB_SI_DUPLIST, vnVal)) { + transform( vnVal.begin(), vnVal.end(), vnVal.begin(), + [nBaseGdbId]( const int& nV) { return nV + nBaseGdbId ; }) ; + pGdbObj->SetInfo( GDB_SI_DUPLIST, vnVal) ; + } } // se inserimento nel DB va bene, ritorno con successo if ( InsertInGeomDB( pGdbObj, nParentId, GDB_LAST_SON)) {