EgtGeomKernel :
- sistemazioni varie legate a scalature per aumentare la precisione.
This commit is contained in:
@@ -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 ;
|
||||
}
|
||||
|
||||
+6
-3
@@ -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]) ;
|
||||
|
||||
+4
-11
@@ -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 ;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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 ;
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const double BOOLEAN_SCALE = 1024 ;
|
||||
const double BOOLEAN_SCALE = PREC_SCALE_COEFF ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const double CUT_SCALE = 1024 ;
|
||||
const double CUT_SCALE = PREC_SCALE_COEFF ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user