From ee0c3830ef4797e3954d2bd5a9cacc9e76b3ad98 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 7 Oct 2014 07:01:39 +0000 Subject: [PATCH] EgtGeomKernel 1.5i5 : - piccole migliorie. --- EgtGeomKernel.rc | Bin 11710 -> 11710 bytes GeoVector3d.cpp | 13 ++++++ GeoVector3d.h | 1 + PolyLine.cpp | 104 +++++++++++++++++++++++------------------------ 4 files changed, 66 insertions(+), 52 deletions(-) diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 73f47d125b75a0d4ffe552c5997b9b6f0cd80483..3340ff6592063083d342e1ddcbc45118cd8aac44 100644 GIT binary patch delta 94 zcmdlNy)SyhH#SDo&FAG5nI|X7NNhIXTE+tApJ$r9OfU~B7Q?u?L)eQMt3-=5R03{7 L9OLFR 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 ; }