diff --git a/SurfAux.cpp b/SurfAux.cpp index 10f835d..7b95a30 100644 --- a/SurfAux.cpp +++ b/SurfAux.cpp @@ -230,6 +230,10 @@ NurbsToBezierSurface(const SNurbsSurfData& snData) } bool bRef = false ; + // se la superficie è lineare nel parametro U allora è già in forma di Bezier in questo parametro + if ( b == nU - 1 ) { + nb = 1 ; + } while ( b < nU - 1) { // qui correggo un probabile errore, mettendo nU anzich� nCPV, come indicato nell'algoritmo int i = b ; while ( b < nU - 1 && abs( snData.vU[b+1] - snData.vU[b]) < EPS_ZERO) @@ -391,6 +395,10 @@ NurbsToBezierSurface(const SNurbsSurfData& snData) } bRef = false ; + // se la superficie è lineare nel parametro V allora è già in forma di Bezier in questo parametro + if ( b == nV - 1 ) { + nc = 1 ; + } while ( b < nV - 1) { // qui correggo un probabile errore, mettendo nU anzich� nCPV, come indicato nell'algoritmo int i = b ; while ( b < nV - 1 && abs( snData.vV[b+1] - snData.vV[b]) < EPS_ZERO)