EgtGeomKernel 2.2l1 :

- correzioni a Zmap per casi degeneri (dexel solo in una matrice anche se tridexel).
This commit is contained in:
Dario Sassi
2020-12-08 10:36:20 +00:00
parent 6c635dc9e4
commit 4508c8a634
3 changed files with 10 additions and 10 deletions
+8 -8
View File
@@ -2216,8 +2216,8 @@ VolZmap::ExtMarchingCubes( int nBlock, VoxelContainer& vVox) const
double dYMax = ( nDexMaxJ + 0.5) * m_dStep ;
double dZMax = ( nDexMaxK + 0.5) * m_dStep ;
// Determino colore dei triangoli
int nFaceInfGrade = m_Values[1][nDexMinK * m_nNx[1] + nDexMinJ][0].nToolMin ;
int nFaceSupGrade = m_Values[1][nDexMinK * m_nNx[1] + nDexMinJ][0].nToolMax ;
int nFaceInfGrade = ( ! m_Values[1].empty() ? m_Values[1][nDexMinK * m_nNx[1] + nDexMinJ][0].nToolMin : 0) ;
int nFaceSupGrade = ( ! m_Values[1].empty() ? m_Values[1][nDexMinK * m_nNx[1] + nDexMinJ][0].nToolMax : 0) ;
// Piano di coordinata x inferiore: versore normale rivolto come X-
if ( nBlockIJK[0] == 0) {
Triangle3dEx trTria1, trTria2 ;
@@ -2255,8 +2255,8 @@ VolZmap::ExtMarchingCubes( int nBlock, VoxelContainer& vVox) const
double dXMax = ( nDexMaxI + 0.5) * m_dStep ;
double dZMax = ( nDexMaxK + 0.5) * m_dStep ;
// Determino colore dei triangoli
int nFaceInfGrade = m_Values[2][nDexMinI * m_nNx[2] + nDexMinK][0].nToolMin ;
int nFaceSupGrade = m_Values[2][nDexMinI * m_nNx[2] + nDexMinK][0].nToolMax ;
int nFaceInfGrade = ( ! m_Values[2].empty() ? m_Values[2][nDexMinI * m_nNx[2] + nDexMinK][0].nToolMin : 0) ;
int nFaceSupGrade = ( ! m_Values[2].empty() ? m_Values[2][nDexMinI * m_nNx[2] + nDexMinK][0].nToolMax : 0) ;
// Piano di coordinata y inferiore: versore normale rivolto come Y-
if ( nBlockIJK[1] == 0) {
Triangle3dEx trTria1, trTria2 ;
@@ -4024,7 +4024,7 @@ VolZmap::GetFirstVoxIJK( int& i, int& j, int& k) const
bool bNotEmpty = false ;
for ( nj = 0 ; nj < 2 ; ++ nj) {
int nDex = nj * int( m_nNx[0]) + ni ;
if ( m_Values[0][nDex].size() > 0) {
if ( ! m_Values[0].empty() && m_Values[0][nDex].size() > 0) {
bNotEmpty = true ;
break ;
}
@@ -4037,7 +4037,7 @@ VolZmap::GetFirstVoxIJK( int& i, int& j, int& k) const
bool bNotEmpty = false ;
for ( mj = 0 ; mj < 2 ; ++ mj) {
int nDex = mj * int( m_nNx[1]) + mi ;
if ( m_Values[1][nDex].size() > 0) {
if ( ! m_Values[1].empty() && m_Values[1][nDex].size() > 0) {
bNotEmpty = true ;
break ;
}
@@ -4067,7 +4067,7 @@ VolZmap::GetLastVoxIJK( int& i, int& j, int& k) const
bool bNotEmpty = false ;
for ( nj = int( m_nNy[0]) - 1 ; nj > int( m_nNy[0]) - 3 ; -- nj) {
int nDex = nj * int( m_nNx[0]) + ni ;
if ( m_Values[0][nDex].size() > 0) {
if ( ! m_Values[0].empty() && m_Values[0][nDex].size() > 0) {
bNotEmpty = true ;
break ;
}
@@ -4080,7 +4080,7 @@ VolZmap::GetLastVoxIJK( int& i, int& j, int& k) const
bool bNotEmpty = false ;
for ( mj = int( m_nNy[1]) - 1 ; mj > int( m_nNy[1]) - 3 ; -- mj) {
int nDex = mj * int( m_nNx[1]) + mi ;
if ( m_Values[1][nDex].size() > 0) {
if ( ! m_Values[1].empty() && m_Values[1][nDex].size() > 0) {
bNotEmpty = true ;
break ;
}