diff --git a/AdjustLoops.cpp b/AdjustLoops.cpp index df4d6f5..af1df8c 100644 --- a/AdjustLoops.cpp +++ b/AdjustLoops.cpp @@ -278,7 +278,7 @@ MyAdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst) //---------------------------------------------------------------------------- bool -AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst) +AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst, bool bNeedSameProp) { // elimino eventuali sovrapposizioni e accostamenti if ( ! MyAdjustLoops( pCurve, CrvLst)) @@ -291,7 +291,7 @@ AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst) // elimino eventuali Spikes e Small Z pCrvCo->RemoveSmallDefects( 2 * LIN_TOL_MIN, ANG_TOL_STD_DEG, true) ; // unisco eventuali tratti allineati - pCrvCo->MergeCurves( LIN_TOL_MIN, ANG_TOL_STD_DEG) ; + pCrvCo->MergeCurves( LIN_TOL_MIN, ANG_TOL_STD_DEG, true, bNeedSameProp) ; } } diff --git a/AdjustLoops.h b/AdjustLoops.h index 78f30c5..463ab93 100644 --- a/AdjustLoops.h +++ b/AdjustLoops.h @@ -17,4 +17,4 @@ //---------------------------------------------------------------------------- -bool AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst) ; +bool AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst, bool bNeedSameProp) ; diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index a0bf9fe..bd9bfb8 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/SfrCreate.cpp b/SfrCreate.cpp index 5e7beaf..c3daeb9 100644 --- a/SfrCreate.cpp +++ b/SfrCreate.cpp @@ -436,7 +436,7 @@ SurfFlatRegionByContours::AddCurve( ICurve* pCrv) pMyCrv->SetThickness( 0) ; // rimuovo eventuali sovrapposizioni (calcolate nel suo piano) ICURVEPLIST CrvLst ; - if ( ! AdjustLoops( Release( pMyCrv), CrvLst)) + if ( ! AdjustLoops( Release( pMyCrv), CrvLst, true)) return false ; // la/le inserisco nel vettore delle curve for ( auto& pSingCrv : CrvLst) diff --git a/SurfFlatRegion.cpp b/SurfFlatRegion.cpp index d2bd04a..0fdb481 100644 --- a/SurfFlatRegion.cpp +++ b/SurfFlatRegion.cpp @@ -103,7 +103,7 @@ SurfFlatRegion::AddExtLoop( ICurve* pCrv) pMyCrv->SetThickness( 0) ; // rimuovo eventuali sovrapposizioni (calcolate nel suo piano) ICURVEPLIST CrvLst ; - if ( ! AdjustLoops( Release( pMyCrv), CrvLst)) + if ( ! AdjustLoops( Release( pMyCrv), CrvLst, true)) return false ; // aggiungo le singole curve bool bOk = true ; @@ -247,7 +247,7 @@ SurfFlatRegion::AddIntLoop( ICurve* pCrv) pMyCrv->SetThickness( 0) ; // rimuovo eventuali sovrapposizioni (calcolate nel suo piano) ICURVEPLIST CrvLst ; - if ( ! AdjustLoops( Release( pMyCrv), CrvLst)) + if ( ! AdjustLoops( Release( pMyCrv), CrvLst, true)) return false ; // aggiungo le singole curve bool bOk = true ;