EgtExecutor 2.7f2 :
- Aggiunte funzioni per Offset di SurfTriMesh chiuse - Migliorata la creazione di una TriMesh a partire da uno ZMap (con SaraP).
This commit is contained in:
+6
-22
@@ -1813,28 +1813,12 @@ ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart)
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGroupGlobFrame( nParentId, frLoc) ;
|
||||
// Costruttore di trimesh da insieme disordinato di triangoli
|
||||
StmFromTriangleSoup StmFts ;
|
||||
bOk = bOk && StmFts.Start() ;
|
||||
// recupero i triangoli del bordo dello Zmap
|
||||
int nCount = ( bOk ? pVZM->GetBlockCount() : 0) ;
|
||||
for ( int i = 0 ; i < nCount && bOk ; ++ i) {
|
||||
// recupero i triangoli del blocco
|
||||
TRIA3DEXVECTOR vTria ;
|
||||
pVZM->GetBlockTriangles( i, vTria) ;
|
||||
for ( auto& Tria : vTria) {
|
||||
// aggiusto per i sistemi di riferimento
|
||||
Tria.LocToLoc( frSou, frLoc) ;
|
||||
// inserisco il triangolo nella nuova superficie
|
||||
if ( ! StmFts.AddTriangle( Tria))
|
||||
bOk = false ;
|
||||
}
|
||||
}
|
||||
// valido la superficie e calcolo le adiacenze
|
||||
bOk = bOk && StmFts.End() ;
|
||||
// chiudo eventuali fessure tra i triangoli
|
||||
PtrOwner<ISurfTriMesh> pStm( StmFts.GetSurf()) ;
|
||||
bOk = bOk && pStm->Repair() ;
|
||||
// Recupero la TriMesh
|
||||
PtrOwner<ISurfTriMesh> pStm ;
|
||||
bOk = bOk && pStm.Set( pVZM->GetSurfTriMesh()) ;
|
||||
bOk = bOk && ( ! IsNull( pStm)) ;
|
||||
// la porto in locale al frame di destinazione
|
||||
bOk = bOk && pStm->LocToLoc( frSou, frLoc) ;
|
||||
// inserisco la superficie trimesh nel DB
|
||||
int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pStm)) : GDB_ID_NULL) ;
|
||||
ExeSetModified() ;
|
||||
|
||||
Reference in New Issue
Block a user