EgtGeomKernel 1.8e4 :
- correzione a ApproxOnSide e MakeConvex di PolyLine per percorsi chiusi - migliorie e correzioni Zmap.
This commit is contained in:
+12
-20
@@ -190,8 +190,6 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
|
||||
// A partire dalle dimensioni di xy del grezzo determino il numero di colonne e righe
|
||||
// della griglia Zmap e da questi la dimensione del vettore di dexel
|
||||
//m_nNx[0] = static_cast <unsigned int> ( ceil( dLengthX / m_dStep)) ;
|
||||
//m_nNy[0] = static_cast <unsigned int> ( ceil( dLengthY / m_dStep)) ;
|
||||
m_nNx[0] = static_cast <unsigned int> ( floor( ( dLengthX + 0.5 * m_dStep + EPS_SMALL) / m_dStep)) ;
|
||||
m_nNy[0] = static_cast <unsigned int> ( floor( ( dLengthY + 0.5 * m_dStep + EPS_SMALL) / m_dStep)) ;
|
||||
|
||||
@@ -216,12 +214,6 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
m_MapFrame[1].Set( ptMapOrig, Y_AX, Z_AX, X_AX) ;
|
||||
m_MapFrame[2].Set( ptMapOrig, Z_AX, X_AX, Y_AX) ;
|
||||
|
||||
//m_nNx[1] = static_cast <unsigned int> ( ceil( dLengthY / m_dStep)) ;
|
||||
//m_nNy[1] = static_cast <unsigned int> ( ceil( dDimZ / m_dStep)) ;
|
||||
|
||||
//m_nNx[2] = static_cast <unsigned int> ( ceil( dDimZ / m_dStep)) ;
|
||||
//m_nNy[2] = static_cast <unsigned int> ( ceil( dLengthX / m_dStep)) ;
|
||||
|
||||
m_nNx[1] = static_cast <unsigned int> ( floor( ( dLengthY + 0.5 * m_dStep + EPS_SMALL) / m_dStep)) ;
|
||||
m_nNy[1] = static_cast <unsigned int> ( floor( ( dDimZ + 0.5 * m_dStep + EPS_SMALL) / m_dStep)) ;
|
||||
|
||||
@@ -264,9 +256,9 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
|
||||
// Definisco la retta da intersecare con la regione
|
||||
double dX = ( i + 0.5) * m_dStep ;
|
||||
Point3d ptP0 = ptMapOrig + Vector3d( dX, 0, 0) ; // CAMBIATO CON EPS
|
||||
Point3d ptP0 = ptMapOrig + Vector3d( dX, 0, 0) ;
|
||||
CurveLine GridLine ;
|
||||
GridLine.SetPVL( ptP0, Y_AX, dLengthY) ; // CAMBIATO CON EPS
|
||||
GridLine.SetPVL( ptP0, Y_AX, dLengthY) ;
|
||||
|
||||
// Determino le intersezioni della retta con la regione
|
||||
CRVCVECTOR IntersectionResults ;
|
||||
@@ -288,8 +280,8 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
if ( nType == CRVC_IN || nType == CRVC_ON_P || nType == CRVC_ON_M) {
|
||||
|
||||
// Indici corrispondenti alle coordinate dei punti
|
||||
int nStartJ = Clamp( int( floor( dt1 * dLengthY / m_dStep - EPS_SMALL + 0.5)), 0, m_nNy[0] - 1) ; // CAMBIATO CON EPS
|
||||
int nEndJ = Clamp( int( floor( dt2 * dLengthY / m_dStep + EPS_SMALL - 0.5)), 0, m_nNy[0] - 1) ; // CAMBIATO CON EPS
|
||||
int nStartJ = Clamp( int( floor( dt1 * dLengthY / m_dStep - EPS_SMALL + 0.5)), 0, m_nNy[0] - 1) ;
|
||||
int nEndJ = Clamp( int( floor( dt2 * dLengthY / m_dStep + EPS_SMALL - 0.5)), 0, m_nNy[0] - 1) ;
|
||||
|
||||
// Ridimensiono e riempio i dexel
|
||||
for ( int j = nStartJ ; j <= nEndJ ; ++ j) {
|
||||
@@ -319,8 +311,8 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
m_Values[2][nPos2][nCurrentSize].dZVal = dt1 * dLengthY ;
|
||||
m_Values[2][nPos2][nCurrentSize + 1].dZVal = dt2 * dLengthY ;
|
||||
|
||||
Point3d ptP1 = ptP0 + dt1 * dLengthY * Y_AX ;//+ ( a + 0.5) * Z_AX ; // CAMBIATO CON EPS
|
||||
Point3d ptP2 = ptP0 + dt2 * dLengthY * Y_AX ;//+ ( a + 0.5) * Z_AX ; // CAMBIATO CON EPS
|
||||
Point3d ptP1 = ptP0 + dt1 * dLengthY * Y_AX ;//+ ( a + 0.5) * Z_AX ;
|
||||
Point3d ptP2 = ptP0 + dt2 * dLengthY * Y_AX ;//+ ( a + 0.5) * Z_AX ;
|
||||
|
||||
int nChunkNum = Surf.GetChunkCount() ;
|
||||
|
||||
@@ -373,9 +365,9 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
|
||||
// Definisco la retta da intersecare con la regione
|
||||
double dX = ( i + 0.5) * m_dStep ;
|
||||
Point3d ptP0 = ptMapOrig + Vector3d( 0, dX, 0) ; ////// // CAMBIATO CON EPS
|
||||
Point3d ptP0 = ptMapOrig + Vector3d( 0, dX, 0) ;
|
||||
CurveLine GridLine ;
|
||||
GridLine.SetPVL( ptP0, X_AX, dLengthX ) ; //// // CAMBIATO CON EPS
|
||||
GridLine.SetPVL( ptP0, X_AX, dLengthX ) ;
|
||||
|
||||
// Determino le intersezioni della retta con la regione
|
||||
CRVCVECTOR IntersectionResults ;
|
||||
@@ -404,11 +396,11 @@ VolZmap::CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double
|
||||
|
||||
m_Values[1][nPos1].resize( nCurrentSize + 2) ;
|
||||
|
||||
m_Values[1][nPos1][nCurrentSize].dZVal = dt1 * dLengthX ; // CAMBIATO CON EPS
|
||||
m_Values[1][nPos1][nCurrentSize + 1].dZVal = dt2 * dLengthX ; // CAMBIATO CON EPS
|
||||
m_Values[1][nPos1][nCurrentSize].dZVal = dt1 * dLengthX ;
|
||||
m_Values[1][nPos1][nCurrentSize + 1].dZVal = dt2 * dLengthX ;
|
||||
|
||||
Point3d ptP1 = ptP0 + dt1 * dLengthX * X_AX ; /// cAMBIO
|
||||
Point3d ptP2 = ptP0 + dt2 * dLengthX * X_AX ; // CAMBIATO CON EPS
|
||||
Point3d ptP1 = ptP0 + dt1 * dLengthX * X_AX ;
|
||||
Point3d ptP2 = ptP0 + dt2 * dLengthX * X_AX ;
|
||||
|
||||
int nChunkNum = Surf.GetChunkCount() ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user