diff --git a/EgtGraphics.rc b/EgtGraphics.rc index 27fdc8e..1677f1c 100644 Binary files a/EgtGraphics.rc and b/EgtGraphics.rc differ diff --git a/SceneGeom.cpp b/SceneGeom.cpp index cf74533..afa1abf 100644 --- a/SceneGeom.cpp +++ b/SceneGeom.cpp @@ -28,6 +28,7 @@ #include "/EgtDev/Include/EGkCurveComposite.h" #include "/EgtDev/Include/EGkSurfTriMesh.h" #include "/EgtDev/Include/EGkSurfFlatRegion.h" +#include "/EgtDev/Include/EGkVolZmap.h" #include "/EgtDev/Include/EGkExtText.h" #include "/EgtDev/Include/EGkGdbFunct.h" @@ -317,6 +318,34 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) } pGraphics->EndTriangles() ; } + // se Zmap + else if ( nGeoType == VOL_ZMAP) { + // recupero il solido Zmap + const IVolZmap* pZmap = GetVolZmap( pGeoObj) ; + if ( pZmap == nullptr) + return false ; + // calcolo la grafica + pGraphics->Clear() ; + pGraphics->AddColor( BLUE) ; + POLYLINELIST lstPL ; + for ( int i = 0 ; ; ++ i) { + bool bOutBreak = false ; + for ( int j = 0 ; ; ++ j) { + if ( pZmap->GetDexelLines( 1, j, i, lstPL)) { + for ( const auto& PL : lstPL) + pGraphics->AddPolyLine( PL) ; + } + else { + if ( j == 0) + bOutBreak = true ; + break ; + } + } + if ( bOutBreak) + break ; + } + + } // se testo else if ( nGeoType == EXT_TEXT) { // recupero il testo