EgtGraphics 1.6b3 :

- aggiunta gestione flag di edge per non disegnare in wireframe/hiddenline (per poligoni).
This commit is contained in:
Dario Sassi
2015-02-14 09:29:36 +00:00
parent 7ffdfed121
commit 045f3e480c
9 changed files with 57 additions and 19 deletions
+14 -2
View File
@@ -282,11 +282,23 @@ Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, MdStMk siObj)
pGraphics->StartTriangles( pSTM->GetTriangleNum()) ;
// ciclo sui triangoli della superficie
Triangle3d Tria ;
TriFlags3d TFlags ;
TriNormals3d TNrms ;
int nId = pSTM->GetFirstTriangle( Tria) ;
while ( nId != SVT_NULL) {
pSTM->GetTriangleSmoothNormals( nId, TNrms) ;
pGraphics->AddTriangle( Tria, TNrms) ;
// se visualizzazione avanzata : edge solo se boundary e normali ai vertici smussate
if ( m_bShowTriaAdvanced) {
pSTM->GetTriangleBoundaryEdges( nId, TFlags) ;
pSTM->GetTriangleSmoothNormals( nId, TNrms) ;
}
// altrimenti : tutti gli edge e normali ai vertici prendono quella del triangolo
else {
for ( int i = 0 ; i < 3 ; ++i) {
TFlags.bFlag[i] = true ;
TNrms.vtN[i] = Tria.GetN() ;
}
}
pGraphics->AddTriangle( Tria, TFlags, TNrms) ;
nId = pSTM->GetNextTriangle( nId, Tria) ;
}
pGraphics->EndTriangles() ;