changen wire and hiddenlines draw modes

This commit is contained in:
Nico Pietroni 2004-06-03 09:11:35 +00:00
parent ea756467ea
commit dc9c863f3a
1 changed files with 28 additions and 16 deletions

View File

@ -53,7 +53,7 @@ public:
case DMSmallTetra: _DrawSmallTetra<cm>();break; case DMSmallTetra: _DrawSmallTetra<cm>();break;
case DMFlat:_DrawSurface<dm,nm,cm>();break; case DMFlat:_DrawSurface<dm,nm,cm>();break;
case DMWire:_DrawSurface<dm,nm,cm>();break; case DMWire:_DrawSurface<dm,nm,cm>();break;
case DMHidden:break;//DrawSurface<dm,nm,cm>();break; case DMHidden:_DrawSurface<dm,nm,cm>();break;
case DMFlatWire:_DrawFlatWire<nm,cm>(); break; case DMFlatWire:_DrawFlatWire<nm,cm>(); break;
case DMTransparent:break; case DMTransparent:break;
} }
@ -96,36 +96,48 @@ void _DrawSurface(){
CONT_TETRA::iterator it; CONT_TETRA::iterator it;
glPushAttrib(0xffffffff); glPushAttrib(0xffffffff);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE); if((dm == DMWire)||(dm ==DMHidden))
if(dm == DMWire) {
glDisable(GL_LIGHTING);
glDisable(GL_NORMALIZE);
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
}
else else
{
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);
glPolygonMode(GL_FRONT,GL_FILL); glPolygonMode(GL_FRONT,GL_FILL);
}
glBegin(GL_TRIANGLES); glBegin(GL_TRIANGLES);
for( it = tetra.begin(); it != tetra.end(); ++it) for( it = tetra.begin(); it != tetra.end(); ++it)
_DrawTetra<nm,cm>((*it)); _DrawTetra<dm,nm,cm>((*it));
glEnd(); glEnd();
glPopAttrib(); glPopAttrib();
} }
template <NormalMode nm,ColorMode cm > template <DrawMode dm,NormalMode nm,ColorMode cm >
void _DrawTetra(TetraType &t) void _DrawTetra(TetraType &t)
{ {
if(!(t.IsD())) if(!(t.IsD()))
{ {
_ChooseColorTetra<cm>(t); _ChooseColorTetra<cm>(t);
for(int i = 0; i < 4; ++i){ for(int i = 0; i < 4; ++i){
if(t.IsBorderF(i)) if (dm == DMWire)
{ _DrawFace<cm>(t,i);
if(nm==NMSmooth) else
_DrawFaceSmooth<cm>(t,i); {
else if (t.IsBorderF(i))
if(nm==NMFlat) {
_DrawFace<cm>(t,i); if(nm==NMSmooth)
} _DrawFaceSmooth<cm>(t,i);
} else
if(nm==NMFlat)
_DrawFace<cm>(t,i);
}
}
}
} }
} }