diff --git a/SurfTriMesh.cpp b/SurfTriMesh.cpp index 3b72bfa..6233b59 100644 --- a/SurfTriMesh.cpp +++ b/SurfTriMesh.cpp @@ -455,7 +455,7 @@ SurfTriMesh::GetAllTriaAroundVertex( int nV, INTVECTOR& vT) // se valido if ( nTa != nT && nTa != VT_NULL) vT.push_back( nTa) ; - } while ( nTa != nT && nTa != VT_NULL && vT.size() < MAX_VT_SIZE / 2) ; + } while ( nTa != nT && nTa != VT_NULL && vT.size() < MAX_VT_SIZE) ; // se sono ritornato al triangolo di partenza ho fatto un giro e concluso la ricerca if ( nTa == nT) @@ -808,7 +808,7 @@ SurfTriMesh::CalcTriangleNormal( int nT) Vector3d vtV2 = m_vVert[m_vTria[nT].nIdVert[2]].ptP - m_vVert[m_vTria[nT].nIdVert[1]].ptP ; Vector3d vtN = vtV1 ^ vtV2 ; // normale da prodotto vettoriale - if ( ! vtN.Normalize()) + if ( ! vtN.Normalize( EPS_ZERO)) return false ; m_vTria[nT].vtN = vtN ; return true ; diff --git a/Vector3d.cpp b/Vector3d.cpp index 7ea5ea3..adc5f02 100644 --- a/Vector3d.cpp +++ b/Vector3d.cpp @@ -132,7 +132,7 @@ Vector3d::ToSpherical( double* pdLen, double* pdAngVertDeg, double* pdAngOrizzDe // Normalizzazione di un vettore (trasformazione in versore) //---------------------------------------------------------------------------- bool -Vector3d::Normalize( void) +Vector3d::Normalize( double dEps) { double dSqLen ; double dLen ; @@ -144,7 +144,7 @@ Vector3d::Normalize( void) return true ; // se troppo piccolo, errore - if ( fabs( dSqLen) < ( EPS_SMALL * EPS_SMALL)) + if ( fabs( dSqLen) < ( dEps * dEps)) return false ; // eseguo la normalizzazione