Include :
- unificazione funzioni AreSamePoint*** - aggiornamento mensile codici protezione librerie.
This commit is contained in:
+30
-75
@@ -323,7 +323,16 @@ DirDist( const Point3d& ptP1, const Point3d& ptP2, Vector3d& vtDir, double& dDis
|
||||
inline bool
|
||||
AreSamePointEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
||||
{
|
||||
return ( SqDist( ptP1, ptP2) < ( dToler * dToler)) ;
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if ( abs( dX) > dToler)
|
||||
return false ;
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if ( abs( dY) > dToler)
|
||||
return false ;
|
||||
double dZ = ptP1.z - ptP2.z ;
|
||||
if ( abs( dZ) > dToler)
|
||||
return false ;
|
||||
return ( ( dX * dX + dY * dY + dZ * dZ) < ( dToler * dToler)) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -335,37 +344,22 @@ AreSamePointXYEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
||||
return ( SqDistXY( ptP1, ptP2) < ( dToler * dToler)) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Verifica se due punti sono quasi coincidenti per esclusione (tolleranza come parametro)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointStepEpsilon( const Point3d& ptP1, const Point3d& ptP2, double dToler)
|
||||
{
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if( dX > dToler)
|
||||
return false ;
|
||||
else {
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if( dY > dToler)
|
||||
return false ;
|
||||
else {
|
||||
double dTol = dToler * dToler ;
|
||||
double dX2 = dX * dX ;
|
||||
double dY2 = dY * dY ;
|
||||
double dZ = ptP1.z- ptP2.z ;
|
||||
double dZ2 = dZ * dZ ;
|
||||
return dX2 + dY2 + dZ2 < dTol ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Verifica se due punti sono quasi coincidenti (Small error -> Approx)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
return ( SqDist( ptP1, ptP2) < SQ_EPS_SMALL) ;
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if ( abs( dX) > EPS_SMALL)
|
||||
return false ;
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if ( abs( dY) > EPS_SMALL)
|
||||
return false ;
|
||||
double dZ = ptP1.z - ptP2.z ;
|
||||
if ( abs( dZ) > EPS_SMALL)
|
||||
return false ;
|
||||
return ( ( dX * dX + dY * dY + dZ * dZ) < SQ_EPS_SMALL) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -377,37 +371,22 @@ AreSamePointXYApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||
return ( SqDistXY( ptP1, ptP2) < SQ_EPS_SMALL) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Verifica se due punti sono quasi coincidenti per esclusione (tolleranza come parametro)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointStepApprox( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if( dX > EPS_SMALL)
|
||||
return false ;
|
||||
else {
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if( dY > EPS_SMALL)
|
||||
return false ;
|
||||
else {
|
||||
double dTol = SQ_EPS_SMALL ;
|
||||
double dX2 = dX * dX ;
|
||||
double dY2 = dY * dY ;
|
||||
double dZ = ptP1.z- ptP2.z ;
|
||||
double dZ2 = dZ * dZ ;
|
||||
return dX2 + dY2 + dZ2 < dTol ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Verifica se due punti sono esattamente coincidenti (Zero error -> Exact)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointExact( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
return ( SqDist( ptP1, ptP2) < SQ_EPS_ZERO) ;
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if ( abs( dX) > EPS_ZERO)
|
||||
return false ;
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if ( abs( dY) > EPS_ZERO)
|
||||
return false ;
|
||||
double dZ = ptP1.z - ptP2.z ;
|
||||
if ( abs( dZ) > EPS_ZERO)
|
||||
return false ;
|
||||
return ( ( dX * dX + dY * dY + dZ * dZ) < SQ_EPS_ZERO) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -419,30 +398,6 @@ AreSamePointXYExact( const Point3d& ptP1, const Point3d& ptP2)
|
||||
return ( SqDistXY( ptP1, ptP2) < SQ_EPS_ZERO) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Verifica se due punti sono quasi coincidenti per esclusione (tolleranza come parametro)
|
||||
//----------------------------------------------------------------------------
|
||||
inline bool
|
||||
AreSamePointStepExact( const Point3d& ptP1, const Point3d& ptP2)
|
||||
{
|
||||
double dX = ptP1.x - ptP2.x ;
|
||||
if( dX > EPS_ZERO)
|
||||
return false ;
|
||||
else {
|
||||
double dY = ptP1.y - ptP2.y ;
|
||||
if( dY > EPS_ZERO)
|
||||
return false ;
|
||||
else {
|
||||
double dTol = SQ_EPS_ZERO ;
|
||||
double dX2 = dX * dX ;
|
||||
double dY2 = dY * dY ;
|
||||
double dZ = ptP1.z- ptP2.z ;
|
||||
double dZ2 = dZ * dZ ;
|
||||
return dX2 + dY2 + dZ2 < dTol ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
//! Restituisce una copia in locale del punto passato
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const int KEY_BASELIB_PROD = 207 ;
|
||||
const int KEY_BASELIB_VER = 2607 ;
|
||||
const int KEY_BASELIB_VER = 2608 ;
|
||||
const int KEY_BASELIB_LEV = 1 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user