Revert "EgtGeomKernel 2.6i1 :"

This reverts commit e598e7986f.
This commit is contained in:
Dario Sassi
2024-11-29 18:22:48 +01:00
parent e598e7986f
commit d60d38a24b
2 changed files with 9 additions and 46 deletions
+9 -46
View File
@@ -1085,8 +1085,15 @@ PolyLine::Invert( bool bInvertU)
//----------------------------------------------------------------------------
bool
PolyLine::MyRemoveSamePoints( double dToler)
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 ;
@@ -1097,7 +1104,7 @@ PolyLine::MyRemoveSamePoints( double dToler)
// mentre esiste un corrente
while ( currP != m_lUPoints.end()) {
// se coincidono
if ( AreSamePointEpsilon( precP->first, currP->first, dToler)) {
if ( AreSamePointApprox( precP->first, currP->first)) {
// elimino il punto corrente
currP = m_lUPoints.erase( currP) ;
// il precedente rimane inalterato
@@ -1112,50 +1119,6 @@ PolyLine::MyRemoveSamePoints( double dToler)
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
MyRemoveSamePoints() ;
return true ;
}
//----------------------------------------------------------------------------
bool
PolyLine::FlattenAdv( double dToler)
{
// verifico non sia vuota
if ( m_lUPoints.empty())
return true ;
// recupero dati sulla planarità della polilinea
int nRank ;
Point3d ptCen ;
Vector3d vtDir ;
bool bFlat = IsFlat( nRank, ptCen, vtDir, dToler) ;
// se non planare entro la tolleranza, esco
if ( ! bFlat)
return false ;
// se punto o linea, non devo fare alcunché
if ( nRank == 0 || nRank == 1)
return true ;
// assegno il piano medio
Plane3d plPlane ;
plPlane.Set( ptCen, vtDir) ;
// proietto i punti su questo piano
for ( auto& UPoint : m_lUPoints)
UPoint.first = ProjectPointOnPlane( UPoint.first, plPlane) ;
// elimino i punti consecutivi diventati coincidenti
MyRemoveSamePoints() ;
return true ;
}
//----------------------------------------------------------------------------
bool
PolyLine::GetConvexHullXY( PNTVECTOR& vConvHull) const