EgtGeomKernel :

- migliorie varie.
This commit is contained in:
Riccardo Elitropi
2024-03-15 13:17:41 +01:00
parent d276809906
commit 9880fa0173
2 changed files with 41 additions and 26 deletions
+8 -1
View File
@@ -173,7 +173,7 @@ RotationMinimizeFrame::GetFramesByStep( FRAME3DVECTOR& vRMFrames, double dStep,
// ciclo sugli step in cui la curva è suddivisa
for ( int i = 0 ; i < nStep ; ++ i) {
// ricavo la lunghezza della curva relativo allo step (i+1)-esimo
dLenNext = min( dLen - EPS_SMALL, ( i + 1) * dMyStep) ;
dLenNext = min( dLen - 10 * EPS_SMALL, ( i + 1) * dMyStep) ;
// ricavo il frame alla lunghezza calcolata
Frame3d frNext ;
if ( ! GetFrameAtLength( vRMFrames[i], dLenNext, frNext))
@@ -221,6 +221,11 @@ RotationMinimizeFrame::GetFramesByTollerance( FRAME3DVECTOR& vRMFrames, double d
if ( ! m_pCrv->ApproxWithLines( dTol, ANG_TOL_STD_DEG, ICurve::APL_SPECIAL, PL))
return false ;
// ricavo la lunghezza della curva
double dCrvLen = 0 ;
if ( ! m_pCrv->GetLength( dCrvLen))
return false ;
// devo calcolare il RMF su ogni punto ricavato dall'approssimazione
Point3d ptCurr ;
bool bPoint = PL.GetFirstPoint( ptCurr) ;
@@ -236,6 +241,8 @@ RotationMinimizeFrame::GetFramesByTollerance( FRAME3DVECTOR& vRMFrames, double d
double dLen = 0. ;
if ( ! m_pCrv->GetLengthAtPoint( ptCurr, dLen))
return false ;
// per sicurezza controllo che sia minore della lunghezza complessiva
dLen = min( dCrvLen - 10 * EPS_SMALL , dLen) ;
// ricavo il Frame associato a tale lunghezza
Frame3d frNext ;
if ( ! GetFrameAtLength( vRMFrames.back(), dLen, frNext))