EgtExecutor :
- piccole migliorie in ExeExplodeSurface e ExeExplodeVolume.
This commit is contained in:
+17
-3
@@ -69,10 +69,17 @@ MyExplodeSurfTriMesh( int nId, int* pnCount)
|
||||
const ISurfTriMesh* pStm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ;
|
||||
if ( pStm == nullptr)
|
||||
return GDB_ID_NULL ;
|
||||
// recupero il numero di facce
|
||||
int nFacet = pStm->GetFacetCount() ;
|
||||
// se c'è una sola faccia, non devo fare alcunché
|
||||
if ( nFacet == 1) {
|
||||
if ( pnCount != nullptr)
|
||||
*pnCount = 1 ;
|
||||
return nId ;
|
||||
}
|
||||
// copio tutte le facce
|
||||
int nFirstId = GDB_ID_NULL ;
|
||||
int nCount = 0 ;
|
||||
int nFacet = pStm->GetFacetCount() ;
|
||||
for ( int i = 0 ; i < nFacet ; ++ i) {
|
||||
ISurfTriMesh* pFac = pStm->CloneFacet( i) ;
|
||||
if ( pFac == nullptr)
|
||||
@@ -89,7 +96,7 @@ MyExplodeSurfTriMesh( int nId, int* pnCount)
|
||||
nFirstId = nFacId ;
|
||||
++ nCount ;
|
||||
}
|
||||
// elimino la superficie
|
||||
// elimino la superficie originale
|
||||
pGeomDB->Erase( nId) ;
|
||||
// restituisco risultati
|
||||
if ( pnCount != nullptr)
|
||||
@@ -107,10 +114,17 @@ MyExplodeSurfFlatRegion( int nId, int* pnCount)
|
||||
const ISurfFlatRegion* pSfr = GetSurfFlatRegion( pGeomDB->GetGeoObj( nId)) ;
|
||||
if ( pSfr == nullptr)
|
||||
return GDB_ID_NULL ;
|
||||
// recupero il numero di componenti connessi (chunk)
|
||||
int nChunk = pSfr->GetChunkCount() ;
|
||||
// se c'è un solo componente, non devo fare alcunché
|
||||
if ( nChunk == 1) {
|
||||
if ( pnCount != nullptr)
|
||||
*pnCount = 1 ;
|
||||
return nId ;
|
||||
}
|
||||
// copio tutti i componenti connessi (chunk)
|
||||
int nFirstId = GDB_ID_NULL ;
|
||||
int nCount = 0 ;
|
||||
int nChunk = pSfr->GetChunkCount() ;
|
||||
for ( int i = 0 ; i < nChunk ; ++ i) {
|
||||
ISurfFlatRegion* pChk = pSfr->CloneChunk( i) ;
|
||||
if ( pChk == nullptr)
|
||||
|
||||
Reference in New Issue
Block a user