EgtGeomKernel 1.6n7 :

- aggiunte a CurveComposite AddJoint, ModifyJoint, RemoveJoint
- aggiunta a PolyLine Flatten.
This commit is contained in:
Dario Sassi
2016-02-22 07:30:51 +00:00
parent ad740b0e07
commit 16e134cadf
4 changed files with 270 additions and 116 deletions
+36
View File
@@ -903,3 +903,39 @@ PolyLine::Invert( bool bInvertU)
}
return true ;
}
//----------------------------------------------------------------------------
bool
PolyLine::Flatten( double dZ)
{
// verifico non sia vuota
if ( m_lUPoints.empty())
return true ;
// ciclo su tutti gli elementi per portarli alla Z indicata
for ( auto& UPoint : m_lUPoints) {
UPoint.first.z = dZ ;
}
// elimino i punti consecutivi diventati coincidenti (almeno 2)
if ( m_lUPoints.size() < 2)
return true ;
// punto precedente
auto precP = m_lUPoints.begin() ;
// punto corrente
auto currP = next( precP) ;
// mentre esiste un corrente
while ( currP != m_lUPoints.end()) {
// se coincidono
if ( AreSamePointApprox( precP->first, currP->first)) {
// elimino il punto corrente
currP = m_lUPoints.erase( currP) ;
// il precedente rimane inalterato
}
// altrimenti da tenere
else {
// avanzo la coppia di uno step
precP = currP ;
++ currP ;
}
}
return true ;
}