EgtGeomKernel :
- correzione in RemoveCurveSmallParts.
This commit is contained in:
@@ -183,8 +183,8 @@ RemoveCurveSmallParts( ICurveComposite* pCurve, double dLinTol)
|
||||
if ( dLen < dLinTol) {
|
||||
// recupero il punto medio della curva
|
||||
Point3d ptMid ; pCurrCrv->GetMidPoint( ptMid) ;
|
||||
// rimuovo il segmento oppure in caso di fallimento rimuovo anche il successivo
|
||||
if ( pCurve->RemoveJoint( i) || ( pCurve->RemoveJoint( i + 1) && pCurve->RemoveJoint( i))) {
|
||||
// rimuovo il segmento
|
||||
if ( pCurve->RemoveJoint( i)) {
|
||||
// porto il nuovo estremo sul punto medio
|
||||
pCurve->ModifyJoint( i, ptMid) ;
|
||||
// aggiorno valore di i tenendo conto che ModifyJoint potrebbe modificare la curva precedente
|
||||
@@ -193,6 +193,13 @@ RemoveCurveSmallParts( ICurveComposite* pCurve, double dLinTol)
|
||||
// aggiorno valore di nEnd ( ModifyJoint potrebbe aver rimosso la curva precedente e la successiva)
|
||||
nEnd = pCurve->GetCurveCount() - ( pCurve->IsClosed() ? 0 : 1) ;
|
||||
}
|
||||
// altrimenti rimuovo anche il successivo
|
||||
else if ( pCurve->RemoveJoint( i + 1)) {
|
||||
pCurve->RemoveJoint( i) ;
|
||||
pCurve->ModifyJoint( i, ptMid) ;
|
||||
i = max( i - 2, nStart - 1) ;
|
||||
nEnd = pCurve->GetCurveCount() - ( pCurve->IsClosed() ? 0 : 1) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user