From 82d1465ecdc7c5b2c1f45ffa6117a4f653a273ad Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Thu, 21 Mar 2024 15:01:35 +0100 Subject: [PATCH] EgtExecutor : - modificata la funzione per richiedere gli edge di una Bezier. --- EXE_GdbGetSurf.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/EXE_GdbGetSurf.cpp b/EXE_GdbGetSurf.cpp index d31a8cf..7fff7bf 100644 --- a/EXE_GdbGetSurf.cpp +++ b/EXE_GdbGetSurf.cpp @@ -1462,25 +1462,26 @@ ExeExtractSurfBezierLoops( int nId, int nDestGrpId, int* pnCount) // richiedo i contorni della superficie e li inserisco nel DB int nFirstId = GDB_ID_NULL ; int nCount = 0 ; - int nL = 0 ; - PtrOwner pCrv( bOk ? pSbz->GetLoop( nL) : nullptr) ; - while ( ! IsNull( pCrv)) { - // porto la curva nel riferimento destinazione - bOk = bOk && pCrv->LocToLoc( frSurf, frDest) ; - // la inserisco nel DB geometrico - int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nDestGrpId, Release( pCrv)) : GDB_ID_NULL) ; + ICRVCOMPOPOVECTOR vCC ; + pSbz->GetLoops( vCC , true) ; + for ( int i = 0 ; i < int( vCC.size()) ; ++i) { + if ( IsNull( vCC[i]) || ! vCC[i]->IsValid()) + continue ; + // porto la curva nel riferimento destinazione + bOk = bOk && vCC[i]->LocToLoc(frSurf, frDest) ; + // la inserisco nel DB geometrico + int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nDestGrpId, Release( vCC[i])) : GDB_ID_NULL) ; bOk = bOk && ( nNewId != GDB_ID_NULL) ; - // copio il materiale - if ( ! pGeomDB->CopyMaterial( nId, nNewId)) + // copio il materiale + if ( ! pGeomDB->CopyMaterial( nId, nNewId)) return GDB_ID_NULL ; - // aggiorno contatori + // aggiorno contatori if ( bOk && nFirstId == GDB_ID_NULL) nFirstId = nNewId ; if ( bOk) ++ nCount ; - // passo alla prossima curva - pCrv.Set( bOk ? pSbz->GetLoop( ++nL) : nullptr) ; } + ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { @@ -1493,4 +1494,4 @@ ExeExtractSurfBezierLoops( int nId, int nDestGrpId, int* pnCount) if ( pnCount != nullptr) *pnCount = nCount ; return nFirstId ; -} +} \ No newline at end of file