diff --git a/Scene.h b/Scene.h index 4d51b20..76629b4 100644 --- a/Scene.h +++ b/Scene.h @@ -127,6 +127,10 @@ class Scene : public IEGrScene { m_nShowZmap = nMode ; } int GetShowZmap( void) const override { return m_nShowZmap ; } + void SetShowText( int nMode) override + { m_nShowText = nMode ; } + int GetShowText( void) const override + { return m_nShowText ; } // Geometry bool SetExtension( const BBox3d& b3Ext) override ; bool UpdateExtension( void) override ; @@ -297,6 +301,7 @@ class Scene : public IEGrScene bool m_bShowCurveDirection ; // flag di visualizzazione direzione curve bool m_bShowTriaAdvanced ; // flag per abilitare la visualizzazione avanzata dei triangoli int m_nShowZmap ; // modo visualizzazione Zmap (+1=surf, +2=spilloni, +4=normali, +8=più colori) + int m_nShowText ; // modo visualizzazione scritte (1=solo contorni, 2=con riempimento) // PointSize - LineWidth double m_dPointSize ; // dimensione punti double m_dSelPointSize ; // dimensione punti selezionati diff --git a/SceneBasic.cpp b/SceneBasic.cpp index 3bf5413..600f5a6 100644 --- a/SceneBasic.cpp +++ b/SceneBasic.cpp @@ -67,6 +67,7 @@ Scene::Scene( void) m_bShowCurveDirection = false ; m_bShowTriaAdvanced = true ; m_nShowZmap = ZSM_SURF ; + m_nShowText = TXT_FILL ; // PointSize - LineWidth m_dPointSize = 3 ; m_dSelPointSize = 5 ; diff --git a/SceneGeom.cpp b/SceneGeom.cpp index aa4878a..11c0750 100644 --- a/SceneGeom.cpp +++ b/SceneGeom.cpp @@ -241,16 +241,16 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) const int N_MIN_TRIA_NEWWAY = 100 ; bool bNewWay = false ; if ( m_bNewWay) { - if (( nGeoType & GEO_SURF) != 0) { + if ( ( nGeoType & GEO_SURF) != 0) { const ISurfTriMesh* pSTM = GetSurfTriMeshAux( pGeoObj) ; if ( pSTM != nullptr && pSTM->GetTriangleCount() > N_MIN_TRIA_NEWWAY) bNewWay = true ; } - else if (( nGeoType & GEO_VOLUME) != 0) { + else if ( ( nGeoType & GEO_VOLUME) != 0) { bNewWay = true ; } else if ( nGeoType == EXT_TEXT) { - const ISurfTriMesh* pSTM = GetExtText( pGeoObj)->GetAuxSurf() ; + const ISurfTriMesh* pSTM = ( m_nShowText == TXT_FILL ? GetExtText( pGeoObj)->GetAuxSurf() : nullptr) ; if ( pSTM != nullptr && pSTM->GetTriangleCount() > N_MIN_TRIA_NEWWAY) bNewWay = true ; } @@ -562,7 +562,7 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) if ( pTXT == nullptr) return false ; // calcolo la grafica - const ISurfTriMesh* pSTM = pTXT->GetAuxSurf() ; + const ISurfTriMesh* pSTM = ( m_nShowText == TXT_FILL ? pTXT->GetAuxSurf() : nullptr) ; if ( pSTM != nullptr) { // recupero il materiale Material mMat ; @@ -628,7 +628,8 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj) bShowAux = true ; // verifico se oggetto con superficie - bool bSurf = ( nGeoType & ( GEO_SURF | GEO_VOLUME)) != 0 || ( nGeoType == EXT_TEXT && GetExtText( pGeoObj)->GetAuxSurf() != nullptr) ; + bool bSurf = ( nGeoType & ( GEO_SURF | GEO_VOLUME)) != 0 || + ( nGeoType == EXT_TEXT && m_nShowText == TXT_FILL && GetExtText( pGeoObj)->GetAuxSurf() != nullptr) ; // recupero il valore di opacità (solo per le superfici e i solidi può esserci trasparenza) int nAlpha = siObj.colObj.GetIntAlpha() ;