EgtGeomKernel 1.5i5 :
- piccole migliorie.
This commit is contained in:
+52
-52
@@ -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 ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user