diff --git a/IntersLineSurfBez.cpp b/IntersLineSurfBez.cpp index 09c7dab..7daf922 100644 --- a/IntersLineSurfBez.cpp +++ b/IntersLineSurfBez.cpp @@ -142,7 +142,7 @@ IntersLineSurfBz( const Point3d& ptL, const Vector3d& vtL, double dLen, const IS pSurfTm->GetTriangle( InfoTm.nT, nVert) ; double dU0, dV0 ; pSurfTm->GetVertexParam( nVert[0], dU0, dV0) ; - ptSP = ptSP + Point3d(dU0, dV0, 0) ; + ptSP = ptSP + Point3d( dU0, dV0, 0) ; if ( ! RefineIntersNewton( ptL,vtL, dLen, bFinite, pSurfBz, ptSP, ptIBz)) return false ; } diff --git a/SurfBezier.cpp b/SurfBezier.cpp index 0df6b37..6a866b5 100644 --- a/SurfBezier.cpp +++ b/SurfBezier.cpp @@ -3021,9 +3021,12 @@ SurfBezier::UnprojectPointFromStm( int nT, const Point3d& ptI, Point3d& ptSP, in int nVert[3] ; pSurfTm->GetTriangle( nTriaIndex, nVert) ; PNTVECTOR vPtPa(3) ; - pSurfTm->GetVertexParam( nVert[0], vPtPa[0].x,vPtPa[0].y, false) ; - pSurfTm->GetVertexParam( nVert[1], vPtPa[1].x,vPtPa[1].y, false) ; - pSurfTm->GetVertexParam( nVert[2], vPtPa[2].x,vPtPa[2].y, false) ; + pSurfTm->GetVertexParam( nVert[0], vPtPa[0].x, vPtPa[0].y) ; + vPtPa[0] *= SBZ_TREG_COEFF ; + pSurfTm->GetVertexParam( nVert[1], vPtPa[1].x, vPtPa[1].y) ; + vPtPa[1] *= SBZ_TREG_COEFF ; + pSurfTm->GetVertexParam( nVert[2], vPtPa[2].x, vPtPa[2].y) ; + vPtPa[2] *= SBZ_TREG_COEFF ; PNTVECTOR vPT(3) ; pSurfTm->GetVertex( nVert[0], vPT[0]) ; pSurfTm->GetVertex( nVert[1], vPT[1]) ; diff --git a/SurfTriMesh.cpp b/SurfTriMesh.cpp index fde8ff7..789b8a5 100644 --- a/SurfTriMesh.cpp +++ b/SurfTriMesh.cpp @@ -512,21 +512,14 @@ SurfTriMesh::GetVertex( int nId, Point3d& ptP) const //---------------------------------------------------------------------------- bool -SurfTriMesh::GetVertexParam( int nId, double& dU, double& dV, bool bDownScaled) const +SurfTriMesh::GetVertexParam( int nId, double& dU, double& dV) const { // verifico esistenza del vertice if ( nId < 0 || nId >= GetVertexSize() || m_vVert[nId].nIdTria == SVT_DEL) return false ; - // recupero i dati - int SBZ_COEFF = 1024 ; - if( bDownScaled) { - dU = m_vVert[nId].dU / SBZ_COEFF ; - dV = m_vVert[nId].dV / SBZ_COEFF ; - } - else { - dU = m_vVert[nId].dU ; - dV = m_vVert[nId].dV ; - } + // recupero i dati (verso l'esterno sempre in 0..1..2..3..) + dU = m_vVert[nId].dU / PREC_SCALE_COEFF ; + dV = m_vVert[nId].dV / PREC_SCALE_COEFF ; return true ; } diff --git a/SurfTriMesh.h b/SurfTriMesh.h index 5990a77..12c886e 100644 --- a/SurfTriMesh.h +++ b/SurfTriMesh.h @@ -277,7 +277,7 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW bool GetShowEdges( void) const override { return m_bShowEdges ; } bool GetVertex( int nId, Point3d& ptP) const override ; - bool GetVertexParam( int nId, double& dU, double& dV, bool bDownScaled = true) const override ; + bool GetVertexParam( int nId, double& dU, double& dV) const override ; int GetFirstVertex( Point3d& ptP) const override ; int GetNextVertex( int nId, Point3d& ptP) const override ; bool GetTriangle( int nId, int nIdVert[3]) const override ; diff --git a/SurfTriMeshBooleans.cpp b/SurfTriMeshBooleans.cpp index 3aed42c..bce4122 100644 --- a/SurfTriMeshBooleans.cpp +++ b/SurfTriMeshBooleans.cpp @@ -41,7 +41,7 @@ using namespace std ; //---------------------------------------------------------------------------- -const double BOOLEAN_SCALE = 1024 ; +const double BOOLEAN_SCALE = PREC_SCALE_COEFF ; //---------------------------------------------------------------------------- bool diff --git a/SurfTriMeshCuts.cpp b/SurfTriMeshCuts.cpp index f6bcbec..5a106ca 100644 --- a/SurfTriMeshCuts.cpp +++ b/SurfTriMeshCuts.cpp @@ -26,7 +26,7 @@ using namespace std ; //---------------------------------------------------------------------------- -const double CUT_SCALE = 1024 ; +const double CUT_SCALE = PREC_SCALE_COEFF ; //---------------------------------------------------------------------------- bool