void drawScene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Reset transformations glLoadIdentity(); // look at the origin spot (0,0,0) from camera position, moved by mouse gluLookAt( startX+deltaX, startY+deltaY, startZ+deltaZ, //camera pos 0.0, 0.0, 0.0, //looking at 0.0, 1.0, 0.0); //up orientation // draw model elements (stars and planet) drawStar(&universe); drawStar(&sun); drawPlanet(&p1); drawPlanet(&p2); drawPlanet(&p3); drawPlanet(&p4); drawPlanet(&p5); drawPlanet(&p6); drawPlanet(&p7); drawPlanet(&p8); // draw time char time[10000]; int int_hours = (int)(hours); int int_days = int_hours/24; int int_years = int_days/365; sprintf(time, "Time:\tY-%d\tD-%d\tH-%d", int_years, int_days%365, int_hours%24); draw2DText(1.0,GLUT_WINDOW_HEIGHT*1.89, time); // draw legend char legend[10000]; sprintf(legend, "\"ESC\" for exit, \"t\" for planet label, \"s\" for step animation, \"r\" for running animation, Mouse moves camera (wheel or ctrl | shift | alt for zoom) "); draw2DText(1.0, 1.0, legend); glFlush(); glutSwapBuffers(); }
void GLWidget::drawCoordinateCross(void) { GLint viewport[4]; glMatrixMode (GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glMatrixMode (GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glGetIntegerv (GL_VIEWPORT, viewport); glTranslatef (-1, -1, 0.0); glScalef (40.0 / viewport[2], 40.0 / viewport[3], 1); glTranslatef (1.25, 1.25, 0.0); glRotatef(xRot / 16.0, 1.0, 0.0, 0.0); glRotatef(yRot / 16.0, 0.0, 1.0, 0.0); glRotatef(zRot / 16.0, 0.0, 0.0, 1.0); glEnable (GL_COLOR_MATERIAL); glDisable (GL_LIGHTING); glLineWidth (1.0f); glBegin(GL_LINES); glColor3f(1,0,0); glVertex3f (0.0f, 0.0f, 0.0f); glVertex3f (0.9, 0.0f, 0.0f); glColor3f(0,1,0); glVertex3f (0.0f, 0.0f, 0.0f); glVertex3f (0.0f, 0.9, 0.0f); glColor3f(0,0,1); glVertex3f (0.0f, 0.0f, 0.0f); glVertex3f (0.0f, 0.0f, 0.9); glEnd (); glColor3f(1,0,0); glPushMatrix(); glTranslatef(0.5,0,0); glRotatef(90,0,1,0); gluCylinder(row,0.1,0,0.4,10,10); glPopMatrix(); glColor3f(0,1,0); glPushMatrix(); glTranslatef(0,0.5,0); glRotatef(-90,1,0,0); gluCylinder(row,0.1,0,0.4,10,10); glPopMatrix(); glColor3f(0,0,1); glPushMatrix(); glTranslatef(0,0,0.5); gluCylinder(row,0.1,0,0.4,10,10); glPopMatrix(); glColor3f(1,0,0); draw2DText(1.1, 0.0, 0.0, (char*)"X"); glColor3f(0,1,0); draw2DText(0.1, 1.0, 0.0, (char*)"Y"); glColor3f(0,0,1); draw2DText(0.1, 0.0, 1.0, (char*)"Z"); glEnable(GL_LIGHTING); glDisable (GL_COLOR_MATERIAL); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); }