EgtGeomKernel 1.5i5 :

- piccole migliorie.
This commit is contained in:
Dario Sassi
2014-10-07 07:01:39 +00:00
parent 46fb7bd5f4
commit ee0c3830ef
4 changed files with 66 additions and 52 deletions
+52 -52
View File
@@ -49,13 +49,13 @@ bool
PolyLine::AddUPoint( double dPar, const Point3d& ptP)
{
// se il punto è uguale al precedente (ignoro parametro), non lo inserisco ma ok
if ( m_nCount > 0 && AreSamePointApprox( ptP, m_lUPoints.back().second)) {
if ( m_nCount > 0 && AreSamePointApprox( ptP, m_lUPoints.back().first)) {
++ m_nRejected ;
return true ;
}
// eseguo inserimento
try {
m_lUPoints.push_back( UPOINT( dPar, ptP)) ;
m_lUPoints.push_back( POINTU( ptP, dPar)) ;
}
catch (...) {
return false ;
@@ -74,10 +74,10 @@ PolyLine::Close( void)
if ( m_lUPoints.size() < 2)
return false ;
// verifico non sia già chiuso
if ( AreSamePointApprox( m_lUPoints.front().second, m_lUPoints.back().second))
if ( AreSamePointApprox( m_lUPoints.front().first, m_lUPoints.back().first))
return false ;
// aggiungo un punto uguale al primo in coda
return AddUPoint( m_lUPoints.front().first, m_lUPoints.front().second) ;
return AddUPoint( m_lUPoints.front().second, m_lUPoints.front().first) ;
}
//----------------------------------------------------------------------------
@@ -110,9 +110,9 @@ PolyLine::EraseLastUPoint( void)
bool
PolyLine::AddOffsetToU( double dOffset)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->first += dOffset ;
iter->second += dOffset ;
return true ;
}
@@ -121,9 +121,9 @@ PolyLine::AddOffsetToU( double dOffset)
bool
PolyLine::Translate( const Vector3d& vtMove)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.Translate( vtMove) ;
iter->first.Translate( vtMove) ;
return true ;
}
@@ -132,9 +132,9 @@ PolyLine::Translate( const Vector3d& vtMove)
bool
PolyLine::Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
iter->first.Rotate( ptAx, vtAx, dCosAng, dSinAng) ;
return true ;
}
@@ -143,9 +143,9 @@ PolyLine::Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, dou
bool
PolyLine::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
iter->first.Scale( frRef, dCoeffX, dCoeffY, dCoeffZ) ;
return true ;
}
@@ -154,9 +154,9 @@ PolyLine::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dC
bool
PolyLine::Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.Mirror( ptOn, vtNorm) ;
iter->first.Mirror( ptOn, vtNorm) ;
return true ;
}
@@ -165,9 +165,9 @@ PolyLine::Mirror( const Point3d& ptOn, const Vector3d& vtNorm)
bool
PolyLine::Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.Shear( ptOn, vtNorm, vtDir, dCoeff) ;
iter->first.Shear( ptOn, vtNorm, vtDir, dCoeff) ;
return true ;
}
@@ -176,9 +176,9 @@ PolyLine::Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vt
bool
PolyLine::ToGlob( const Frame3d& frRef)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.ToGlob( frRef) ;
iter->first.ToGlob( frRef) ;
return true ;
}
@@ -187,9 +187,9 @@ PolyLine::ToGlob( const Frame3d& frRef)
bool
PolyLine::ToLoc( const Frame3d& frRef)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.ToLoc( frRef) ;
iter->first.ToLoc( frRef) ;
return true ;
}
@@ -198,9 +198,9 @@ PolyLine::ToLoc( const Frame3d& frRef)
bool
PolyLine::LocToLoc( const Frame3d& frOri, const Frame3d& frDest)
{
UPNTLIST::iterator iter ;
PNTULIST::iterator iter ;
for ( iter = m_lUPoints.begin() ; iter != m_lUPoints.end() ; ++ iter)
iter->second.LocToLoc( frOri, frDest) ;
iter->first.LocToLoc( frOri, frDest) ;
return true ;
}
@@ -213,7 +213,7 @@ PolyLine::Join( PolyLine& PL, double dOffsetPar)
if ( PL.m_nCount == 0)
return true ;
// verifico che l'ultimo punto di questa polilinea coincida con il primo dell'altra
if ( m_nCount > 0 && ! AreSamePointApprox( m_lUPoints.back().second, PL.m_lUPoints.front().second))
if ( m_nCount > 0 && ! AreSamePointApprox( m_lUPoints.back().first, PL.m_lUPoints.front().first))
return false ;
// cancello l'ultimo di questa
EraseLastUPoint() ;
@@ -235,9 +235,9 @@ PolyLine::Split( double dU, PolyLine& PL)
// pulisco la polilinea destinazione
PL.Clear() ;
// ricerca del punto in cui dividere
UPNTLIST::const_iterator iter ;
PNTULIST::const_iterator iter ;
iter = m_lUPoints.begin() ;
while ( iter != m_lUPoints.end() && iter->first < ( dU + EPS_PARAM))
while ( iter != m_lUPoints.end() && iter->second < ( dU + EPS_PARAM))
++ iter ;
if ( iter == m_lUPoints.end())
return false ;
@@ -261,7 +261,7 @@ PolyLine::IsClosed( void) const
if ( m_lUPoints.size() < 3)
return false ;
return ( AreSamePointApprox( m_lUPoints.front().second, m_lUPoints.back().second)) ;
return ( AreSamePointApprox( m_lUPoints.front().first, m_lUPoints.back().first)) ;
}
//----------------------------------------------------------------------------
@@ -277,9 +277,9 @@ PolyLine::GetFirstUPoint( double* pdPar, Point3d* pptP, bool bNotLast) const
}
if ( pdPar != nullptr)
*pdPar = m_iter->first ;
*pdPar = m_iter->second ;
if ( pptP != nullptr)
*pptP = m_iter->second ;
*pptP = m_iter->first ;
return true ;
}
@@ -299,9 +299,9 @@ PolyLine::GetNextUPoint( double* pdPar, Point3d* pptP, bool bNotLast) const
}
if ( pdPar != nullptr)
*pdPar = m_iter->first ;
*pdPar = m_iter->second ;
if ( pptP != nullptr)
*pptP = m_iter->second ;
*pptP = m_iter->first ;
return true ;
}
@@ -322,9 +322,9 @@ PolyLine::GetLastUPoint( double* pdPar, Point3d* pptP, bool bNotFirst) const
}
if ( pdPar != nullptr)
*pdPar = m_iter->first ;
*pdPar = m_iter->second ;
if ( pptP != nullptr)
*pptP = m_iter->second ;
*pptP = m_iter->first ;
return true ;
}
@@ -344,9 +344,9 @@ PolyLine::GetPrevUPoint( double* pdPar, Point3d* pptP, bool bNotFirst) const
}
if ( pdPar != nullptr)
*pdPar = m_iter->first ;
*pdPar = m_iter->second ;
if ( pptP != nullptr)
*pptP = m_iter->second ;
*pptP = m_iter->first ;
return true ;
}
@@ -360,9 +360,9 @@ PolyLine::GetCurrUPoint( double* pdPar, Point3d* pptP) const
return false ;
if ( pdPar != nullptr)
*pdPar = m_iter->first ;
*pdPar = m_iter->second ;
if ( pptP != nullptr)
*pptP = m_iter->second ;
*pptP = m_iter->first ;
return true ;
}
@@ -376,18 +376,18 @@ PolyLine::GetFirstULine( double* pdIni, Point3d* pptIni, double* pdFin, Point3d*
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdIni != nullptr)
*pdIni = m_iter->first ;
*pdIni = m_iter->second ;
if ( pptIni != nullptr)
*pptIni = m_iter->second ;
*pptIni = m_iter->first ;
// parametro e punto finali
++ m_iter ;
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdFin != nullptr)
*pdFin = m_iter->first ;
*pdFin = m_iter->second ;
if ( pptFin != nullptr)
*pptFin = m_iter->second ;
*pptFin = m_iter->first ;
return true ;
}
@@ -400,18 +400,18 @@ PolyLine::GetNextULine( double* pdIni, Point3d* pptIni, double* pdFin, Point3d*
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdIni != nullptr)
*pdIni = m_iter->first ;
*pdIni = m_iter->second ;
if ( pptIni != nullptr)
*pptIni = m_iter->second ;
*pptIni = m_iter->first ;
// parametro e punto finali
++ m_iter ;
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdFin != nullptr)
*pdFin = m_iter->first ;
*pdFin = m_iter->second ;
if ( pptFin != nullptr)
*pptFin = m_iter->second ;
*pptFin = m_iter->first ;
return true ;
}
@@ -428,18 +428,18 @@ PolyLine::GetLastULine( double* pdIni, Point3d* pptIni, double* pdFin, Point3d*
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdFin != nullptr)
*pdFin = m_iter->first ;
*pdFin = m_iter->second ;
if ( pptFin != nullptr)
*pptFin = m_iter->second ;
*pptFin = m_iter->first ;
// parametro e punto iniziali
if ( m_iter == m_lUPoints.begin())
return false ;
-- m_iter ;
if ( pdIni != nullptr)
*pdIni = m_iter->first ;
*pdIni = m_iter->second ;
if ( pptIni != nullptr)
*pptIni = m_iter->second ;
*pptIni = m_iter->first ;
return true ;
}
@@ -452,18 +452,18 @@ PolyLine::GetPrevULine( double* pdIni, Point3d* pptIni, double* pdFin, Point3d*
if ( m_iter == m_lUPoints.end())
return false ;
if ( pdFin != nullptr)
*pdFin = m_iter->first ;
*pdFin = m_iter->second ;
if ( pptFin != nullptr)
*pptFin = m_iter->second ;
*pptFin = m_iter->first ;
// parametro e punto iniziali
if ( m_iter == m_lUPoints.begin())
return false ;
-- m_iter ;
if ( pdIni != nullptr)
*pdIni = m_iter->first ;
*pdIni = m_iter->second ;
if ( pptIni != nullptr)
*pptIni = m_iter->second ;
*pptIni = m_iter->first ;
return true ;
}