From 3b9f6773f2f1619ff9b3b89ec74e652ad526cc10 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Mon, 3 Feb 2025 15:31:41 +0100 Subject: [PATCH] EgtGeomKernel : - in CalcPocketing piccola modifica nella creazione della superficie di incidenza. --- CalcPocketing.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CalcPocketing.cpp b/CalcPocketing.cpp index edecc76..7f21973 100644 --- a/CalcPocketing.cpp +++ b/CalcPocketing.cpp @@ -1191,15 +1191,16 @@ CreateSurfFrIncidence( const ICurveComposite* pCrv, const PocketParams& PockPara // per sicurezza... pCrvExtLoopSurfInc->Close() ; - // creo la regione - if ( ! pSfrInc->AddExtLoop( Release( pCrvExtLoopSurfInc))) + // creo la regione ( la curva potrebbe autointersecarsi) + SurfFlatRegionByContours SfrByC ; + if ( ! SfrByC.AddCurve( Release( pCrvExtLoopSurfInc))) return false ; - // guarda Z_AX come normale - if ( pSfrInc->IsValid() && pSfrInc->GetChunkCount() > 0) { - Vector3d vtN = pSfrInc->GetNormVersor() ; - if ( AreOppositeVectorApprox( vtN, Z_AX)) - pSfrInc->Invert() ; + PtrOwner pSfr( SfrByC.GetSurf()) ; + if ( pSfr->IsValid() && pSfr->GetChunkCount() > 0) { + if ( AreOppositeVectorApprox( pSfr->GetNormVersor(), Z_AX)) + pSfr->Invert() ; + pSfrInc->CopyFrom( pSfr) ; return true ; }