EgtGeomKernel :

- aggiunta funzione per l'approsimazione di curve con limitazione sulla lunghezza dei singoli tratti.
This commit is contained in:
Daniele Bariletti
2026-07-08 17:26:51 +02:00
parent f0137d26f4
commit 4d3b7ea6cf
11 changed files with 194 additions and 20 deletions
+28
View File
@@ -514,6 +514,34 @@ CurveLine::ApproxWithLines( double dLinTol, double dAngTolDeg, int nType, PolyLi
return true ;
}
//----------------------------------------------------------------------------
bool
CurveLine::ApproxWithLimitedLines( double dLinTol, double dAngTolDeg, int nType, double dMaxLen, PolyLine& PL) const
{
// pulisco la polilinea
PL.Clear() ;
// la curva deve essere validata
if ( m_nStatus != OK)
return false ;
// inserisco lo start
PL.AddUPoint( 0, m_PtStart) ;
double dLen = Dist( m_PtStart, m_PtEnd) ;
if ( dLen > dMaxLen) {
int nStep = int( ceil( dLen / dMaxLen)) ;
for ( int i = 1 ; i < nStep ; ++i) {
double dPar = 1. / nStep * i ;
PL.AddUPoint( dPar, Media( m_PtStart, m_PtEnd, dPar)) ;
}
}
// inserisco l'end
PL.AddUPoint( 1, m_PtEnd) ;
return true ;
}
//----------------------------------------------------------------------------
bool
CurveLine::ApproxWithArcs( double dLinTol, double dAngTolDeg, PolyArc& PA) const