diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index 41265a3..4e4d3cf 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -102,6 +102,33 @@ MyExplodeSurfTriMesh( int nId, int& nCount) // restituisco risultati return nFirstId ; } + // recupero il numero di gusci + int nShells = pStm->GetShellCount() ; + // se ci sono più gusci, separo questi + if ( nShells > 1) { + int nFirstId = GDB_ID_NULL ; + nCount = 0 ; + for ( int i = 0 ; i < nShells ; ++ i) { + ISurfTriMesh* pFac = pStm->CloneShell( i) ; + if ( pFac == nullptr) + continue ; + // inserisco la superficie nello stesso gruppo e nello stesso posto del GeomDB + int nNewId = pGeomDB->InsertGeoObj( GDB_ID_NULL, nId, GDB_BEFORE, pFac) ; + if ( nNewId == GDB_ID_NULL) + return GDB_ID_NULL ; + // copio gli attributi + if ( ! pGeomDB->CopyAttributes( nId, nNewId)) + return GDB_ID_NULL ; + // aggiorno contatori + if ( nFirstId == GDB_ID_NULL) + nFirstId = nNewId ; + ++ nCount ; + } + // elimino la superficie originale + pGeomDB->Erase( nId) ; + // restituisco risultati + return nFirstId ; + } // recupero il numero di facce int nFacets = pStm->GetFacetCount() ; // se ci sono più facce, separo queste diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 0968823..16bdbac 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ