EgtGeomKernel :
- aggiunta funzione per l'approsimazione di curve con limitazione sulla lunghezza dei singoli tratti.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user