EgtGeomKernel 1.9l4 :
- fabs sostituito da abs - in Zmap razionalizzazione operazioni taglio spilloni - in SurfTriMesh UpdateFaceting senza più chiamate recursive.
This commit is contained in:
+13
-13
@@ -315,7 +315,7 @@ SurfTriMesh::GetCentroid( Point3d& ptCen) const
|
||||
nId = GetNextTriangle( nId, Tria) ;
|
||||
}
|
||||
dVolume /= 6 ;
|
||||
if ( fabs( dVolume) < EPS_SMALL * EPS_SMALL * EPS_SMALL)
|
||||
if ( abs( dVolume) < EPS_SMALL * EPS_SMALL * EPS_SMALL)
|
||||
return false ;
|
||||
ptCen /= ( 24 * 2 * dVolume) ;
|
||||
}
|
||||
@@ -330,7 +330,7 @@ SurfTriMesh::GetCentroid( Point3d& ptCen) const
|
||||
ptCen += Tria.GetCentroid() * dTriaArea ;
|
||||
nId = GetNextTriangle( nId, Tria) ;
|
||||
}
|
||||
if ( fabs( dArea) < SQ_EPS_SMALL)
|
||||
if ( abs( dArea) < SQ_EPS_SMALL)
|
||||
return false ;
|
||||
ptCen /= dArea ;
|
||||
}
|
||||
@@ -2064,20 +2064,20 @@ SurfTriMesh::CreateByScrewing( const PolyLine& PL, const Point3d& ptAx, const Ve
|
||||
if ( vtAx.IsSmall())
|
||||
return false ;
|
||||
// verifico se solo rivoluzione
|
||||
bool bOnlyRev = ( fabs( dMove) < EPS_SMALL) ;
|
||||
bool bOnlyRev = ( abs( dMove) < EPS_SMALL) ;
|
||||
// verifico che l'angolo di rotazione sia significativo e, se solo rivoluzione, non superi un giro
|
||||
if ( fabs( dAngRot) < EPS_ANG_SMALL)
|
||||
if ( abs( dAngRot) < EPS_ANG_SMALL)
|
||||
return false ;
|
||||
if ( bOnlyRev && fabs( dAngRot) > ANG_FULL)
|
||||
if ( bOnlyRev && abs( dAngRot) > ANG_FULL)
|
||||
dAngRot = _copysign( ANG_FULL, dAngRot) ;
|
||||
// verifico se rotazione completa
|
||||
bool bFullRev = bOnlyRev && ( fabs( fabs( dAngRot) - ANG_FULL) < EPS_ANG_SMALL) ;
|
||||
bool bFullRev = bOnlyRev && ( abs( abs( dAngRot) - ANG_FULL) < EPS_ANG_SMALL) ;
|
||||
// aggiusto il valore dell'angolo di step
|
||||
const double MIN_STEP_ROT = 1 ;
|
||||
const double MAX_STEP_ROT = 90 ;
|
||||
if ( fabs( dStepRot) < MIN_STEP_ROT)
|
||||
if ( abs( dStepRot) < MIN_STEP_ROT)
|
||||
dStepRot = _copysign( MIN_STEP_ROT, dAngRot) ;
|
||||
else if ( fabs( dStepRot) > MAX_STEP_ROT)
|
||||
else if ( abs( dStepRot) > MAX_STEP_ROT)
|
||||
dStepRot = _copysign( MAX_STEP_ROT, dAngRot) ;
|
||||
else
|
||||
dStepRot = _copysign( dStepRot, dAngRot) ;
|
||||
@@ -2604,7 +2604,7 @@ SurfTriMesh::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double
|
||||
return false ;
|
||||
|
||||
// verifico non sia nulla
|
||||
if ( fabs( dCoeffX) < EPS_ZERO && fabs( dCoeffY) < EPS_ZERO && fabs( dCoeffZ) < EPS_ZERO)
|
||||
if ( abs( dCoeffX) < EPS_ZERO && abs( dCoeffY) < EPS_ZERO && abs( dCoeffZ) < EPS_ZERO)
|
||||
return false ;
|
||||
|
||||
// calcolo bbox allineato con riferimento di scalatura e senza tener conto dello spessore
|
||||
@@ -2613,9 +2613,9 @@ SurfTriMesh::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double
|
||||
if ( ! GetBBox( frRef, b3Ref))
|
||||
return false ;
|
||||
Vector3d vtDelta = b3Ref.GetMax() - b3Ref.GetMin() ;
|
||||
bool bZeroX = ( fabs( vtDelta.x * dCoeffX) < EPS_SMALL) ;
|
||||
bool bZeroY = ( fabs( vtDelta.y * dCoeffY) < EPS_SMALL) ;
|
||||
bool bZeroZ = ( fabs( vtDelta.z * dCoeffZ) < EPS_SMALL) ;
|
||||
bool bZeroX = ( abs( vtDelta.x * dCoeffX) < EPS_SMALL) ;
|
||||
bool bZeroY = ( abs( vtDelta.y * dCoeffY) < EPS_SMALL) ;
|
||||
bool bZeroZ = ( abs( vtDelta.z * dCoeffZ) < EPS_SMALL) ;
|
||||
if ( ( bZeroX && bZeroY) || ( bZeroX && bZeroZ) || ( bZeroY && bZeroZ))
|
||||
return false ;
|
||||
|
||||
@@ -2635,7 +2635,7 @@ SurfTriMesh::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double
|
||||
bMirror = ( bMirror ? ( dCoeffZ > 0) : ( dCoeffZ < 0)) ;
|
||||
|
||||
// aggiorno le facce
|
||||
bool bRecalc = ( fabs( dCoeffX) < EPS_ZERO || fabs( dCoeffY) < EPS_ZERO || fabs( dCoeffZ) < EPS_ZERO) ;
|
||||
bool bRecalc = ( abs( dCoeffX) < EPS_ZERO || abs( dCoeffY) < EPS_ZERO || abs( dCoeffZ) < EPS_ZERO) ;
|
||||
for ( int i = 0 ; i < GetTriangleSize() ; ++ i) {
|
||||
if ( m_vTria[i].nIdVert[0] != SVT_DEL) {
|
||||
// se c'è mirror, devo invertire la faccia
|
||||
|
||||
Reference in New Issue
Block a user