EgtGeomKernel 2.4k6 :

- migliorata IsClosedAndFlat di PolyLine (se non riesce a calcolare il piano chiama IsFlat e quindi usa PCA)
- corretta RemoveCurveSmallZs per caso in cui non riesce a rimuovere il segmento incriminato.
This commit is contained in:
DarioS
2022-11-28 15:18:28 +01:00
parent 817bfa788e
commit 7ee0e38cec
3 changed files with 20 additions and 9 deletions
+16 -7
View File
@@ -1,7 +1,7 @@
//----------------------------------------------------------------------------
// EgalTech 2017-2022
//----------------------------------------------------------------------------
// File : RemoveCurveDefects.cpp Data : 13.11.22 Versione : 2.4k2
// File : RemoveCurveDefects.cpp Data : 28.11.22 Versione : 2.4k6
// Contenuto : Implementazione rimozione spikes di curva.
//
//
@@ -114,12 +114,21 @@ RemoveCurveSmallZs( ICurveComposite* pCurve, double dLinTol)
( DistPointCurve( ptMid, *pPrevCrv).GetDist( dDistM2) && dDistM2 < dLinTol) &&
( DistPointCurve( ptEnd, *pPrevCrv).GetDist( dDistE) && dDistE < dLinTol))) {
// rimuovo il segmento
pCurve->RemoveJoint( i) ;
-- nCrvCount ;
-- nEnd ;
-- i ;
// porto il nuovo estremo sul punto medio
pCurve->ModifyJoint( i + 1, ptMid) ;
if ( pCurve->RemoveJoint( i)) {
-- nCrvCount ;
-- nEnd ;
-- i ;
// porto il nuovo estremo sul punto medio
pCurve->ModifyJoint( i + 1, ptMid) ;
}
// altrimenti devo rimuovere anche il successivo
else if ( pCurve->RemoveJoint( i + 1) && pCurve->RemoveJoint( i)) {
nCrvCount -= 2 ;
nEnd -= 2 ;
-- i ;
// porto il nuovo estremo sul punto medio
pCurve->ModifyJoint( i + 1, ptMid) ;
}
}
}
}