From bf600bb9d184b592daebed221116d5985281d140 Mon Sep 17 00:00:00 2001 From: DarioS Date: Fri, 7 Jan 2022 09:55:01 +0100 Subject: [PATCH] EgtExecutor 2.4a2 : - aggiunto Repair a ExeCreateSurfTmByTriangles, ExeCreateSurfTmBySewing e ExeCreateSurfTmByVolZmap. --- EXE_GdbCreateSurf.cpp | 18 ++++++++++++------ EgtExecutor.rc | Bin 16176 -> 16176 bytes 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/EXE_GdbCreateSurf.cpp b/EXE_GdbCreateSurf.cpp index 5e6cf74..519ea79 100644 --- a/EXE_GdbCreateSurf.cpp +++ b/EXE_GdbCreateSurf.cpp @@ -443,8 +443,8 @@ MyCreateSidePlaneHull( const PNTVECTOR& vVert, bool bNXp, const BBox3d& b3Box, i } //---------------------------------------------------------------------------- -bool -MyDoSewing( ISurfTriMesh* pStm, const Polygon3d& Polyg) +static bool +MyCreateSewPolygon( ISurfTriMesh* pStm, const Polygon3d& Polyg) { // verifico esistenza superficie if ( pStm == nullptr) @@ -544,8 +544,8 @@ MyCreateSurfTmConvexHullInBBox( int nParentId, int nId, const BBox3d& b3Box, int PtrOwner pChStm( CreateSurfTriMesh()) ; if ( IsNull( pChStm)) return GDB_ID_NULL ; - if ( ! MyDoSewing( pChStm, Polyg1) || - ! MyDoSewing( pChStm, Polyg2)) + if ( ! MyCreateSewPolygon( pChStm, Polyg1) || + ! MyCreateSewPolygon( pChStm, Polyg2)) return GDB_ID_NULL ; pChStm->DoCompacting() ; // recupero il riferimento locale del gruppo destinazione @@ -1280,8 +1280,10 @@ ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) } // valido la superficie e calcolo le adiacenze bOk = bOk && StmFts.End() ; - // inserisco la superficie trimesh nel DB + // chiudo eventuali fessure tra i triangoli PtrOwner pStm( StmFts.GetSurf()) ; + bOk = bOk && pStm->Repair() ; + // inserisco la superficie trimesh nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pStm)) : GDB_ID_NULL) ; // se richiesto, cancello le superfici originali if ( nNewId != GDB_ID_NULL && bErase) { @@ -1355,6 +1357,8 @@ ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase) } // compatto bOk = bOk && pStm->DoCompacting() ; + // chiudo eventuali fessure tra i triangoli + bOk = bOk && pStm->Repair() ; // inserisco la superficie trimesh nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pStm)) : GDB_ID_NULL) ; // se richiesto, cancello le superfici originali @@ -1461,8 +1465,10 @@ ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart) } // valido la superficie e calcolo le adiacenze bOk = bOk && StmFts.End() ; - // inserisco la superficie trimesh nel DB + // chiudo eventuali fessure tra i triangoli PtrOwner pStm( StmFts.GetSurf()) ; + bOk = bOk && pStm->Repair() ; + // inserisco la superficie trimesh nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pStm)) : GDB_ID_NULL) ; ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 3a60cb46429cc4b609357c12f8211acaaa68d5fb..3142e342510983ee6f8961051035d03828533795 100644 GIT binary patch delta 79 zcmdl`x1nysFE&P_&A-`PnSqoe*K!sx?>N)s4T4pSMw1=6k~jAW*?>e(i-FY$N+HxV MD8kglDP58Q0C_7LTL1t6 delta 79 zcmdl`x1nysFE&QQ&A-`PnSqoe*K!sx?>N)s4T4pShLat+k~jAW*?>e(i-FY$N+HxV MD8kglDP58Q0C(RTQvd(}