EgtGeomKernel :

- in creazione regioni aggiunta chiusura loops di sicurezza dopo aggiustamenti
- in curve composite corretta chiusura per caso di un solo arco.
This commit is contained in:
Dario Sassi
2024-05-30 11:20:45 +02:00
parent 2b3c285190
commit b5d879cd3d
2 changed files with 8 additions and 2 deletions
+2
View File
@@ -317,6 +317,8 @@ AdjustLoops( ICurve* pCurve, ICURVEPLIST& CrvLst, bool bNeedSameProp)
pCrvCo->RemoveSmallDefects( 2 * LIN_TOL_MIN, ANG_TOL_STD_DEG, true) ;
// unisco eventuali tratti allineati
pCrvCo->MergeCurves( LIN_TOL_MIN, ANG_TOL_STD_DEG, true, bNeedSameProp) ;
// richiudo i loop per sicurezza
pCrvCo->Close() ;
}
}
+6 -2
View File
@@ -291,9 +291,13 @@ CurveComposite::Close( void)
return true ;
// se molto vicini li modifico
if ( AreSamePointEpsilon( ptStart, ptEnd, 10 * EPS_SMALL)) {
// se un solo arco
if ( m_CrvSmplS.size() == 1 && m_CrvSmplS.front()->GetType() == CRV_ARC)
return GetBasicCurveArc( m_CrvSmplS.front())->ChangeAngCenter( ANG_FULL) ;
// caso generale
Point3d ptMid = Media( ptStart, ptEnd) ;
if ( ! ModifyStart( ptMid) ||
! ModifyEnd( ptMid))
if ( ! m_CrvSmplS.front()->ModifyStart( ptMid) ||
! m_CrvSmplS.back()->ModifyEnd( ptMid))
return false ;
}
// altrimenti aggiungo la linea di chiusura