/* Response to a redraw event: renders the scene */ void display(){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(40, width/(float)height, 0.01, 10); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslate( -observerPos ); track.GetView(); track.Apply(false); glPushMatrix(); float d=mesh.bbox.Diag(); glScale(1.5f/d); Point3f p = glWrap.m->bbox.Center(); p[1] = glWrap.m->bbox.min[1]; glTranslate(-p); // the trimesh drawing calls switch(drawMode) { case 0: glWrap.Draw<vcg::GLW::DMSmooth, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 1: glWrap.Draw<vcg::GLW::DMWire, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 2: glWrap.Draw<vcg::GLW::DMFlatWire, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 3: glWrap.Draw<vcg::GLW::DMHidden, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 4: glWrap.Draw<vcg::GLW::DMFlat, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; default: break; } glPopMatrix(); RenderFloor(); track.DrawPostApply(); SDL_GL_SwapBuffers(); }
void display(){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(40, width/(float)height, 0.1, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,0,5, 0,0,0, 0,1,0); track.center=Point3f(0, 0, 0); track.radius= 1; track.GetView(); track.Apply(); glPushMatrix(); float d=1.0f/mesh.bbox.Diag(); glScale(d); glTranslate(-glWrap.m->bbox.Center()); // the trimesh drawing calls switch(drawMode) { case 0: glWrap.Draw<vcg::GLW::DMSmooth, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 1: glWrap.Draw<vcg::GLW::DMPoints, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 2: glWrap.Draw<vcg::GLW::DMWire, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 3: glWrap.Draw<vcg::GLW::DMFlatWire, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 4: glWrap.Draw<vcg::GLW::DMHidden, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; case 5: glWrap.Draw<vcg::GLW::DMFlat, vcg::GLW::CMNone,vcg::GLW::TMNone> ();break; default: break; } glPopMatrix(); track.DrawPostApply(); SDL_GL_SwapBuffers(); }
void GLWidget::paintGL () { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(40, GLWidget::width()/(float)GLWidget::height(), 0.1, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,0,3.5f, 0,0,0, 0,1,0); track.center=vcg::Point3f(0, 0, 0); track.radius= 1; track.GetView(); glPushMatrix(); track.Apply(false); glPushMatrix(); if(mesh.vert.size()>0) { vcg::glScale(2.0f/mesh.bbox.Diag()); glTranslate(-mesh.bbox.Center()); glWrap.Draw(GLW::DrawMode(drawmode),GLW::CMNone,GLW::TMNone); } glPopMatrix(); track.DrawPostApply(); glPopMatrix(); if(hasToPick) { hasToPick=false; Point3f pp; if(Pick<Point3f>(pointToPick[0],pointToPick[1],pp)) { track.Translate(-pp); track.Scale(1.25f); QCursor::setPos(mapToGlobal(QPoint(width()/2+2,height()/2+2))); } } TwDraw(); }
// Draw prime numbers pattern : void DisplayFunc() { float zoom; float X, Y; unsigned int primeNumberCounter; PreDisplay(); zoom = 1.0f / (greatestPrimeNumber+1.0f); primeNumberCounter = 0; glPointSize(3.f); int nbParticlesLeft = 0; std::vector<float> currentColor; int currentIndex = 0; std::map<int, std::vector<float> >::iterator it; if(previousNbPositions > 0){ it = tableColorProducer.find(currentMessageTrace.at(currentIndex)); nbParticlesLeft = currentMessageTrace.at(currentIndex+1); } glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0,(GLfloat)glutGet(GLUT_WINDOW_WIDTH) / (GLfloat)glutGet(GLUT_WINDOW_HEIGHT), 1.0, 2000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0,0,5, 0,0,0, 0,1,0); track.center=vcg::Point3f(0, 0, 0); track.radius= 1; track.GetView(); track.Apply(false); glPushMatrix(); float d=2.0f/(sqrt(dx*dx + dy*dy + dz*dz)); glScalef(d,d,d); glTranslatef(-cx,-cy,-cz); glBegin(GL_POINTS); for(unsigned int i = 0; i < previousNbPositions; i++){ if(it != tableColorProducer.end()) glColor3f(it->second.at(0),it->second.at(1),it->second.at(2)); else glColor3f(1.f,1.f,1.f); glVertex3d(positions[i * 3],positions[i * 3 + 1],positions[ i * 3 + 2]); glColor3f(1.f,1.f,1.f); nbParticlesLeft--; if(nbParticlesLeft <= 0 && currentIndex <( (int)(currentMessageTrace.size()) - 2)){ currentIndex+=2; it = tableColorProducer.find(currentMessageTrace.at(currentIndex)); nbParticlesLeft = currentMessageTrace.at(currentIndex+1); } } glEnd(); DrawSimulationArea(); glPopMatrix(); track.DrawPostApply(); PostDisplay(); }