EgtGraphics 1.8d1 :

- modifiche per poter visualizzare le normali degli Zmap.
This commit is contained in:
Dario Sassi
2017-04-06 07:24:46 +00:00
parent d04209041c
commit 36988ee133
2 changed files with 10 additions and 8 deletions
+10 -8
View File
@@ -178,10 +178,10 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj)
if ( nGeoType == VOL_ZMAP) {
const IVolZmap* pZmap = GetVolZmap( pGeoObj) ;
if ( pZmap != nullptr) {
switch ( m_nShowZmap) {
case ZSM_SURF : nCount = pZmap->GetBlockCount() ; break ;
case ZSM_BOTH : nCount = pZmap->GetBlockCount() + 1 ; break ;
}
if ( ( m_nShowZmap & ZSM_SURF) != 0)
nCount += pZmap->GetBlockCount() ;
if ( ( m_nShowZmap & ZSM_LINES) != 0 || ( m_nShowZmap & ZSM_NORMALS) != 0)
nCount += 1 ;
}
}
// nuova modalità grafica solo per superfici con molti triangoli o solidi Zmap
@@ -381,15 +381,17 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj)
pGraphics->EndTriangles() ;
}
}
// visualizzazione spilloni (sempre nell'ultimo blocco)
if ( m_nShowZmap == ZSM_LINES || m_nShowZmap == ZSM_BOTH) {
// visualizzazione spilloni e normali (sempre nell'ultimo blocco)
if ( ( m_nShowZmap & ZSM_LINES) != 0 || ( m_nShowZmap & ZSM_NORMALS) != 0) {
// imposto indice blocco corrente
pGraphics->SetCurrent( nCount) ;
// lo pulisco
pGraphics->Clear() ;
// ciclo sui tre gruppi di spilloni
Color vCol[3] = {BLUE, RED, GREEN} ;
for ( int k = 0 ; k < 3 ; ++ k) {
int nKmin = ( m_nShowZmap & ZSM_LINES) != 0 ? 0 : 3 ;
int nKmax = ( m_nShowZmap & ZSM_NORMALS) != 0 ? 6 : 3 ;
Color vCol[6] = {BLUE, RED, GREEN, BLUE, RED, GREEN} ;
for ( int k = nKmin ; k < nKmax ; ++ k) {
pGraphics->AddColor( vCol[k]) ;
pGraphics->AddMaterial( vCol[k], vCol[k], vCol[k], 10) ;
pGraphics->AddBackMaterial( vCol[k]) ;