From 73a65d8cf9fae268d13f61e23151f24d60ea5c1f Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 12 Sep 2023 16:00:34 +0200 Subject: [PATCH] EgtGeomKernel : - correzioni a Zmap con mappa singola - aggiunto a Zmap e sua interfaccia metodo IsTriDexel. --- VolZmap.cpp | 7 ++++++- VolZmap.h | 8 +++++--- VolZmapGraphics.cpp | 4 ++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/VolZmap.cpp b/VolZmap.cpp index a3af750..428d534 100644 --- a/VolZmap.cpp +++ b/VolZmap.cpp @@ -1984,6 +1984,11 @@ VolZmap::CalcBlockNum( void) if ( m_nMapNum == 1) { m_nFracLin[2] = 1 ; m_nNumBlock = m_nFracLin[0] * m_nFracLin[1] * m_nFracLin[2] ; + m_BlockToUpdate.clear() ; + m_BlockToUpdate.resize( m_nNumBlock, true) ; + m_BlockUpdatingCounter.clear() ; + m_BlockUpdatingCounter.resize( m_nNumBlock, 0) ; + m_SingleMapTria.resize( m_nNumBlock) ; return true ; } // Calcolo il numero di voxel lungo Z @@ -1995,7 +2000,7 @@ VolZmap::CalcBlockNum( void) m_BlockToUpdate.clear() ; m_BlockToUpdate.resize( m_nNumBlock, true) ; m_BlockUpdatingCounter.clear() ; - m_BlockUpdatingCounter.resize( m_nNumBlock + ( m_nMapNum == 1 ? 0 : 1), 0) ; + m_BlockUpdatingCounter.resize( m_nNumBlock + 1, 0) ; // Dimensiono raccolta di voxel, triangoli di feature tra blocchi e di segnalatori di materiale fra voxel m_InterBlockVox.resize( m_nNumBlock) ; diff --git a/VolZmap.h b/VolZmap.h index 146c3d5..8361860 100644 --- a/VolZmap.h +++ b/VolZmap.h @@ -1,13 +1,13 @@ //---------------------------------------------------------------------------- -// EgalTech 2015-2020 +// EgalTech 2015-2023 //---------------------------------------------------------------------------- -// File : VolZmap.h Data : 12.05.19 Versione : 2.2k1 +// File : VolZmap.h Data : 12.09.23 Versione : 2.5i1 // Contenuto : Dichiarazione della classe Volume Zmap. // // // // Modifiche : 22.01.15 DS Creazione modulo. -// +// 12.09.23 DS Aggiunto metodo IsTriDexel. // //---------------------------------------------------------------------------- @@ -77,6 +77,8 @@ class VolZmap : public IVolZmap, public IGeoObjRW bool GetBlockTriangles( int nBlock, TRIA3DEXVECTOR& vTria) const override ; bool GetEdges( ICURVEPOVECTOR& vpCurve) const override ; bool GetVolume( double& dVol) const override ; + bool IsTriDexel( void) const override + { return m_nMapNum == 3 ; } bool GetDexelLines( int nDir, int nPos1, int nPos2, POLYLINELIST& lstPL) const override ; int GetResolution( void) const override { return m_nDexVoxRatio ; } diff --git a/VolZmapGraphics.cpp b/VolZmapGraphics.cpp index fb5b8eb..5dfc8ab 100644 --- a/VolZmapGraphics.cpp +++ b/VolZmapGraphics.cpp @@ -4569,6 +4569,10 @@ VolZmap::Remove( FlatVoxelContainer& VoxCont, int nI, int nJ, int nK) const bool VolZmap::GetEdges( ICURVEPOVECTOR& vpCurve) const { + // Se mappa singola, non calcolabili + if ( m_nMapNum == 1) + return false ; + // Garantisco grafica aggiornata UpdateTripleMapGraphics() ;