From 20331adecd6c4ca2969d0cfbac481f8d5927f40f Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 8 Feb 2021 11:24:00 +0000 Subject: [PATCH] EgtGeomKernel 2.3b1 : - in lettura file esteso aggiustamento info di sistema (GDB_SI_*) a tutte quelle che lo necessitano. --- EgtGeomKernel.rc | Bin 11710 -> 11710 bytes GeomDB.cpp | 14 +++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 1264ee347539f9c3f13f44917d00a8c4daf8d15b..c07d8f6cb53204e90e82b0667e87ce62c4ff7bce 100644 GIT binary patch delta 118 zcmdlNy)SyhH#Sxy1|0^&&A-{?nVFLq3@0mc>u&bq>S2M3-{!MM7I$OZ+#~G9j8n2h Q8ZL=uq6g#VEaea`08%6!@&Et; delta 118 zcmdlNy)SyhH#Sy71|0^I&A-{?nVAzAOeQOG>u&bq>S2M3-{!MM7I$OZ+#~G9j8n2h Q8ZL=uq6g#VEaea`09EK70ssI2 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)) {