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:
+14
-14
@@ -188,7 +188,7 @@ VerifyAndAdjustSamePoint( ICurve* pCrv1, ICurve* pCrv2, CurveComposite& ccAux)
|
||||
if ( ! AreSamePointXYEpsilon( ptP1, ptP2, 10 * EPS_SMALL))
|
||||
return false ;
|
||||
// se punti quasi coincidenti in Z
|
||||
if ( fabs( ptP1.z - ptP2.z) < 10 * EPS_SMALL) {
|
||||
if ( abs( ptP1.z - ptP2.z) < 10 * EPS_SMALL) {
|
||||
// se coincidono esattamente, va bene così
|
||||
if ( AreSamePointExact( ptP1, ptP2))
|
||||
return true ;
|
||||
@@ -238,7 +238,7 @@ VerifyAndAdjustInternalAngle( ICurve* pCrv1, ICurve* pCrv2, CurveComposite& ccAu
|
||||
! intCC.GetIntersPointNearTo( 1, ptMid, ptNew2))
|
||||
return false ;
|
||||
// se punti coincidenti in Z
|
||||
if ( fabs( ptNew1.z - ptNew2.z) < EPS_SMALL) {
|
||||
if ( abs( ptNew1.z - ptNew2.z) < EPS_SMALL) {
|
||||
// modifico le due curve sul punto medio
|
||||
Point3d ptNew = 0.5 * ( ptNew1 + ptNew2) ;
|
||||
return ( pCrv1->ModifyEnd( ptNew) && pCrv2->ModifyStart( ptNew)) ;
|
||||
@@ -277,8 +277,8 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
if ( ! pCrv1->GetEndDir( vtDir1) || ! pCrv2->GetStartDir( vtDir2))
|
||||
return false ;
|
||||
// verifico se presente componente in Z
|
||||
bool bDZ1 = fabs( vtDir1.z) > EPS_ANG_ZERO ;
|
||||
bool bDZ2 = fabs( vtDir2.z) > EPS_ANG_ZERO ;
|
||||
bool bDZ1 = abs( vtDir1.z) > EPS_ANG_ZERO ;
|
||||
bool bDZ2 = abs( vtDir2.z) > EPS_ANG_ZERO ;
|
||||
// le porto nel piano XY
|
||||
vtDir1.z = 0 ;
|
||||
vtDir2.z = 0 ;
|
||||
@@ -290,7 +290,7 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
if ( ! vtDir1.GetAngleXY( vtDir2, dAngDeg))
|
||||
return false ;
|
||||
// se vicino all'angolo piatto, si devono ricalcolare usando le curve originali e spostandosi un poco
|
||||
if ( fabs( dAngDeg) > ( ANG_STRAIGHT - EPS_ANG_SMALL)) {
|
||||
if ( abs( dAngDeg) > ( ANG_STRAIGHT - EPS_ANG_SMALL)) {
|
||||
// ritorno alle curve originali
|
||||
PtrOwner<ICurve> pCrvOri1( pCrv1->Clone()) ;
|
||||
PtrOwner<ICurve> pCrvOri2( pCrv2->Clone()) ;
|
||||
@@ -314,18 +314,18 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
}
|
||||
|
||||
// verifico sia angolo esterno (accetto se entità quasi esattamente sovrapposto)
|
||||
if ( fabs( dAngDeg) < ( ANG_STRAIGHT - 10 * EPS_ANG_ZERO) &&
|
||||
if ( abs( dAngDeg) < ( ANG_STRAIGHT - 10 * EPS_ANG_ZERO) &&
|
||||
( ( dDist < 0 && dAngDeg > 0) ||
|
||||
( dDist > 0 && dAngDeg < 0)))
|
||||
return false ;
|
||||
|
||||
// se l'angolo esterno supera il retto, offset extend diventa offset chamfer
|
||||
if ( nType == ICurve::OFF_EXTEND && fabs( dAngDeg) > ANG_RIGHT + EPS_ANG_SMALL)
|
||||
if ( nType == ICurve::OFF_EXTEND && abs( dAngDeg) > ANG_RIGHT + EPS_ANG_SMALL)
|
||||
nType = ICurve::OFF_CHAMFER ;
|
||||
|
||||
// se angolo esterno molto piccolo, semplifico tutto
|
||||
const double SMALL_EXT_ANG = 1.0 ;
|
||||
bool bAngSmall = ( fabs( dAngDeg) < SMALL_EXT_ANG) ;
|
||||
bool bAngSmall = ( abs( dAngDeg) < SMALL_EXT_ANG) ;
|
||||
if ( bAngSmall)
|
||||
nType = ICurve::OFF_EXTEND ;
|
||||
|
||||
@@ -348,7 +348,7 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
case ICurve::OFF_CHAMFER :
|
||||
{
|
||||
// lunghezza aggiuntiva in tangenza
|
||||
double dLen = fabs( dDist) * tan( fabs( dAngDeg) / 4 * DEGTORAD) ;
|
||||
double dLen = abs( dDist) * tan( abs( dAngDeg) / 4 * DEGTORAD) ;
|
||||
// punti di costruzione smusso
|
||||
Point3d ptP1, ptP1a, ptP2a, ptP2 ;
|
||||
if ( ! pCrv1->GetEndPoint( ptP1) || ! pCrv2->GetStartPoint( ptP2))
|
||||
@@ -357,7 +357,7 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
ptP2a = ptP2 - vtDir2 * dLen ;
|
||||
// se sull'angolo c'era un dislivello (linea verticale eliminata)
|
||||
double dDeltaZ = ptP2.z - ptP1.z ;
|
||||
if ( fabs( dDeltaZ) > EPS_SMALL) {
|
||||
if ( abs( dDeltaZ) > EPS_SMALL) {
|
||||
ptP1a.z += dDeltaZ / 4 ;
|
||||
ptP2a.z -= dDeltaZ / 4 ;
|
||||
bDZ1 = true ;
|
||||
@@ -399,7 +399,7 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
case ICurve::OFF_EXTEND :
|
||||
{
|
||||
// lunghezza aggiuntiva in tangenza
|
||||
double dLen = fabs( dDist) * tan( fabs( dAngDeg) / 2 * DEGTORAD) ;
|
||||
double dLen = abs( dDist) * tan( abs( dAngDeg) / 2 * DEGTORAD) ;
|
||||
// punti di costruzione estensione
|
||||
Point3d ptP1, ptPc, ptP2 ;
|
||||
if ( ! pCrv1->GetEndPoint( ptP1) || ! pCrv2->GetStartPoint( ptP2))
|
||||
@@ -407,7 +407,7 @@ VerifyAndAdjustExternalAngle( ICurve* pCrv1, ICurve* pCrv2, double dDist, int nT
|
||||
ptPc = ptP1 + vtDir1 * dLen ;
|
||||
// se sull'angolo c'era un dislivello (linea verticale eliminata)
|
||||
double dDeltaZ = ptP2.z - ptP1.z ;
|
||||
if ( fabs( dDeltaZ) > EPS_SMALL) {
|
||||
if ( abs( dDeltaZ) > EPS_SMALL) {
|
||||
ptPc.z += dDeltaZ / 2 ;
|
||||
bDZ1 = true ;
|
||||
bDZ2 = true ;
|
||||
@@ -445,7 +445,7 @@ bool
|
||||
AddFirstLastVerticalLines( CurveComposite& ccOffs, double dLenVertFirst, double dLenVertLast)
|
||||
{
|
||||
// se richiesto inserimento prima retta verticale
|
||||
if ( fabs( dLenVertFirst) > EPS_SMALL) {
|
||||
if ( abs( dLenVertFirst) > EPS_SMALL) {
|
||||
Point3d ptP2 ;
|
||||
if ( ! ccOffs.GetStartPoint( ptP2))
|
||||
return false ;
|
||||
@@ -458,7 +458,7 @@ AddFirstLastVerticalLines( CurveComposite& ccOffs, double dLenVertFirst, double
|
||||
return false ;
|
||||
}
|
||||
// se richiesto inserimento ultima retta verticale
|
||||
if ( fabs( dLenVertLast) > EPS_SMALL) {
|
||||
if ( abs( dLenVertLast) > EPS_SMALL) {
|
||||
Point3d ptP1 ;
|
||||
if ( ! ccOffs.GetEndPoint( ptP1))
|
||||
return false ;
|
||||
|
||||
Reference in New Issue
Block a user