EgtMachKernel :
- correzione errore in RemoveChunksUnderTolerance.
This commit is contained in:
+10
-17
@@ -1344,9 +1344,9 @@ SurfRoughing::ProcessPath( int nPathId, int nTempId, int nPvId, int nClId)
|
||||
ISurfFlatRegion* pSfrRemoved ; // regione PROGRESSIVA rimossa attuale
|
||||
} ;
|
||||
/* - nNumStep -
|
||||
Nel caso di Step base indica il numero di tale step ( da 0 a nStep)
|
||||
Nel caso di Step base indica il numero di tale step ( da 0 a nStep - 1)
|
||||
Nel caso di SubStep indica il numero di tale SubStep relativo ai due Step Base che lo racchiudono
|
||||
( da 0 a nSubStep per ogni coppia di Step base successivi)
|
||||
( da 0 a nSubStep - 1 per ogni coppia di Step base successivi)
|
||||
*/
|
||||
vector< myStepInfo> vStepInfo ;
|
||||
|
||||
@@ -2458,13 +2458,9 @@ SurfRoughing::RemoveChunksUnderTolerance( ISurfFlatRegion* pSfr) const
|
||||
// scorro tutti i chunk della superficie
|
||||
bool bSameSurf = true ;
|
||||
for ( int c = 0 ; c < pSfr->GetChunkCount() ; ++ c) {
|
||||
// recupero il loop esterno
|
||||
PtrOwner<ICurve> pCrvExtLoop( pSfr->GetLoop( c, 0)) ;
|
||||
if ( IsNull( pCrvExtLoop) || ! pCrvExtLoop->IsValid())
|
||||
return false ;
|
||||
// verifico se l'Offset massimo della curva è più piccolo del parametro di tolleranza
|
||||
double dMaxOffs ;
|
||||
CalcCurveLimitOffset( *pCrvExtLoop, dMaxOffs) ;
|
||||
// verifico se l'Offset massimo del chunk è sopra alla tolleranza
|
||||
double dMaxOffs = EPS_SMALL ;
|
||||
pSfr->GetChunkMaxOffset( c, dMaxOffs) ;
|
||||
/*
|
||||
// rimuovo il Chunk c-esimo se l'Offset massimo è minore della tolleranza
|
||||
if ( dMaxOffs < m_dSubStepToler) {
|
||||
@@ -2473,16 +2469,13 @@ SurfRoughing::RemoveChunksUnderTolerance( ISurfFlatRegion* pSfr) const
|
||||
}
|
||||
*/
|
||||
if ( dMaxOffs > m_dSubStepToler) {
|
||||
if ( ! pSfrBeauty->AddExtLoop( Release( pCrvExtLoop)))
|
||||
return false ;
|
||||
// recupero il loop esterno
|
||||
if ( ! pSfrBeauty->AddExtLoop( pSfr->GetLoop( c, 0)))
|
||||
return false ;
|
||||
// inserisco le isole del Chunk corrente
|
||||
for ( int l = 1 ; l < pSfr->GetLoopCount( c) ; ++ l) {
|
||||
PtrOwner<ICurve> pCrvIsl( pSfr->GetLoop( c, l)) ;
|
||||
if ( IsNull( pCrvIsl) ||
|
||||
! pCrvIsl->IsValid() ||
|
||||
! pSfrBeauty->AddIntLoop( *pCrvIsl))
|
||||
for ( int l = 1 ; l < pSfr->GetLoopCount( c) ; ++ l)
|
||||
if ( ! pSfrBeauty->AddIntLoop( pSfr->GetLoop( c, l)))
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
else
|
||||
bSameSurf = false ;
|
||||
|
||||
Reference in New Issue
Block a user