From 1852feab3869028743d6c87b85ae2182c15a0503 Mon Sep 17 00:00:00 2001 From: nicopietroni Date: Wed, 6 Oct 2004 16:24:59 +0000 Subject: [PATCH] minor changes in visulizing of selected tetrahedra --- wrap/gl/glwraptetra.h | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/wrap/gl/glwraptetra.h b/wrap/gl/glwraptetra.h index 8b789b09..7aa2a389 100644 --- a/wrap/gl/glwraptetra.h +++ b/wrap/gl/glwraptetra.h @@ -205,9 +205,15 @@ template } glBegin(GL_TRIANGLES); for( it = tetra.begin(); it != tetra.end(); ++it) - if(!(*it).IsD()){ + if((!it->IsD())&&(!(it->IsS()))) //draw as normal + { _DrawSmallTetra(*it); } + else + if((!it->IsD())&&(!(it->IsS())))//draw in selection mode + { + _DrawSelectedTetra(*it); + } glEnd(); glPopAttrib(); } @@ -252,10 +258,34 @@ void _DrawSurface(){ glPopAttrib(); } + +void _DrawSelectedTetra(TetraType &t) +{ + glPushMatrix(); + glPushAttrib(0xffff); + glDisable(GL_CLIP_PLANE0); + glDisable(GL_BLEND); + glDisable(GL_LIGHTING); + glDisable(GL_NORMALIZE); + glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); + + glBegin(GL_LINE_LOOP); + glColor3d(1,0,0); + for (int face=0;face<4;face++) + { + glVertex(t.V(Tetra::VofF(face,0))->P()); + glVertex(t.V(Tetra::VofF(face,1))->P()); + glVertex(t.V(Tetra::VofF(face,2))->P()); + } + //end drawing + glPopAttrib(); + glPopMatrix(); +} + template void _DrawTetra(TetraType &t) { - if(!(t.IsD())) + if((!t.IsD())&&(!t.IsS())) { if ((dm!=DMWire)&&(dm!=DMHidden)) _ChooseColorTetra(t); @@ -265,7 +295,6 @@ void _DrawTetra(TetraType &t) else { if (t.IsBorderF(i)) - //if (t.IsS()) { if(nm==NMSmooth) _DrawFaceSmooth(t,i); @@ -276,6 +305,9 @@ void _DrawTetra(TetraType &t) } } } + else + if((!t.IsD())&&(t.IsS())) + _DrawSelectedTetra(t); } template