EgtGeomKernel 2.4b2 :
- in chiusura di Curva Composita con estremi più vicini di 10*EPS_SMALL si spostano gli estremi a metà strada - in creazione FlatRegion da FatCurve migliorata gestione curve quasi chiuse.
This commit is contained in:
+16
-5
@@ -255,14 +255,25 @@ CurveComposite::Close( void)
|
||||
// se già chiusa, non faccio alcunché
|
||||
if ( IsClosed())
|
||||
return true ;
|
||||
// aggiungo la linea di chiusura
|
||||
PtrOwner<CurveLine> pLine( CreateBasicCurveLine()) ;
|
||||
// determino la distanza tra gli estremi
|
||||
Point3d ptStart, ptEnd ;
|
||||
if ( ! GetStartPoint( ptStart) ||
|
||||
! GetEndPoint( ptEnd) ||
|
||||
! pLine->Set( ptEnd, ptStart) ||
|
||||
! AddSimpleCurve( Release( pLine)))
|
||||
! GetEndPoint( ptEnd))
|
||||
return false ;
|
||||
// se molto vicini li modifico
|
||||
if ( SqDist( ptStart, ptEnd) < 100 * SQ_EPS_SMALL) {
|
||||
Point3d ptMid = Media( ptStart, ptEnd) ;
|
||||
if ( ! ModifyStart( ptMid) ||
|
||||
! ModifyEnd( ptMid))
|
||||
return false ;
|
||||
}
|
||||
// altrimenti aggiungo la linea di chiusura
|
||||
else {
|
||||
PtrOwner<CurveLine> pLine( CreateBasicCurveLine()) ;
|
||||
if ( ! pLine->Set( ptEnd, ptStart) ||
|
||||
! AddSimpleCurve( Release( pLine)))
|
||||
return false ;
|
||||
}
|
||||
// imposto ricalcolo della grafica
|
||||
m_OGrMgr.Reset() ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user