EgtGraphics 2.1k6 :

- aggiunta possibilità di impostare spessore linee e grandezza punti.
This commit is contained in:
Dario Sassi
2019-12-02 07:28:16 +00:00
parent 7c124275c6
commit 2710646327
10 changed files with 112 additions and 29 deletions
+19 -4
View File
@@ -67,6 +67,15 @@ Scene::Scene( void)
m_bShowCurveDirection = false ;
m_bShowTriaAdvanced = true ;
m_nShowZmap = ZSM_SURF ;
// PointSize - LineWidth
m_dPointSize = 3 ;
m_dSelPointSize = 5 ;
m_dMarkPointSize = 7 ;
m_dLineWidth = 1 ;
m_dSelLineWidth = 2 ;
m_dMarkLineWidth = 5 ;
m_dGridLineWidth = 1 ;
m_dFrameLineWidth = 2 ;
// Selezione
m_bSelect = false ;
m_nObjFilterForSelect = GEO_ZERODIM | GEO_CURVE | GEO_SURF | GEO_VOLUME | GEO_EXTRA ;
@@ -499,7 +508,7 @@ Scene::CalcClippingPlanesFromExtView( void)
return false ;
// ricavo la posizione dei piani di clipping sull'asse Z di vista
const double EXP_COEFF = 1.1 ;
double dExtent = __max( ( EXP_COEFF * vtExtent.z), MIN_ZCLIP_EXT) ;
double dExtent = max( ( EXP_COEFF * vtExtent.z), MIN_ZCLIP_EXT) ;
m_dZNear = - ( ptCenter.z + dExtent) ;
m_dZFar = - ( ptCenter.z - dExtent) ;
return true ;
@@ -716,9 +725,6 @@ Scene::MyDraw( bool bSwapBF)
if ( m_pGeomDB != nullptr)
m_pGeomDB->GetDefaultMaterial( m_colDef) ;
// imposto la dimensione standard dei punti
glPointSize( 3) ;
// impostazioni dipendenti dalla modalità di visualizzazione
switch ( m_nShowMode) {
case SM_WIREFRAME :
@@ -726,6 +732,9 @@ Scene::MyDraw( bool bSwapBF)
glDisable( GL_LIGHTING) ;
// disegno griglia senza illuminazione (già impostato)
DrawGrid() ;
// imposto dati standard per punti e linee
glPointSize( (float) GetPointSize()) ;
glLineWidth( (float) GetLineWidth()) ;
// imposto disegno wireframe anche per poligoni
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE) ;
// disegno le geometrie del DB in una sola passata
@@ -736,6 +745,9 @@ Scene::MyDraw( bool bSwapBF)
glDisable( GL_LIGHTING) ;
// disegno griglia senza illuminazione (già impostato)
DrawGrid() ;
// imposto dati standard per punti e linee
glPointSize( (float) GetPointSize()) ;
glLineWidth( (float) GetLineWidth()) ;
// disegno le geometrie del DB
// prima passata per superfici solo per aggiornare Zbuffer (poligoni riempiti e offsettati)
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL) ;
@@ -753,6 +765,9 @@ Scene::MyDraw( bool bSwapBF)
// disegno griglia senza illuminazione
glDisable( GL_LIGHTING) ;
DrawGrid() ;
// imposto dati standard per punti e linee
glPointSize( (float) GetPointSize()) ;
glLineWidth( (float) GetLineWidth()) ;
// imposto disegno shading per poligoni con davanti e dietro diversificati
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL) ;
glLightModeli( GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE) ;