EgtExecutor 2.6f4 :
- ora ExplodeSurfTriMesh gestisce anche le shell.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user