EgtGeomKernel :

- aggiunta funzione per rimozione spikes da curve
- utilizzo rimozione spikes in creazione regioni
- migliorata gestione linee quasi parallele in intersezione.
This commit is contained in:
Dario Sassi
2017-10-03 08:21:50 +00:00
parent aa52d6b1f9
commit e60e853816
6 changed files with 116 additions and 5 deletions
+13 -4
View File
@@ -20,6 +20,7 @@
#include "CurveAux.h"
#include "CurveComposite.h"
#include "RemoveCurveOverlaps.h"
#include "RemoveCurveSpikes.h"
#include "GeoConst.h"
#include "/EgtDev/Include/EGkStringUtils3d.h"
#include "/EgtDev/Include/EGkUiUnits.h"
@@ -97,10 +98,14 @@ SurfFlatRegion::AddExtLoop( ICurve* pCrv)
// aggiungo le singole curve
bool bOk = true ;
for ( auto& pCrv : CrvLst) {
// se curva composita, unisco eventuali tratti allineati
// se curva composita
CurveComposite* pCrvCo = GetBasicCurveComposite( pCrv) ;
if ( pCrvCo != nullptr)
if ( pCrvCo != nullptr) {
// unisco eventuali tratti allineati
pCrvCo->MergeCurves( LIN_TOL_MIN, ANG_TOL_STD_DEG) ;
// elimino eventuali spikes
RemoveCurveSpikes( pCrvCo) ;
}
// aggiungo il loop
if ( ! AddSimpleExtLoop( pCrv))
bOk = false ;
@@ -239,10 +244,14 @@ SurfFlatRegion::AddIntLoop( ICurve* pCrv)
// aggiungo le singole curve
bool bOk = true ;
for ( auto& pCrv : CrvLst) {
// se curva composita, unisco eventuali tratti allineati
// se curva composita
CurveComposite* pCrvCo = GetBasicCurveComposite( pCrv) ;
if ( pCrvCo != nullptr)
if ( pCrvCo != nullptr) {
// unisco eventuali tratti allineati
pCrvCo->MergeCurves( LIN_TOL_MIN, ANG_TOL_STD_DEG) ;
// elimino eventuali spikes
RemoveCurveSpikes( pCrvCo) ;
}
// aggiungo il loop
if ( ! AddSimpleIntLoop( pCrv))
bOk = false ;