static void draw_minus(void) { glVertex3f(-.10,-.005,0); glVertex3f(-.10, .005,0); glVertex3f(-.01, .005,0); glVertex3f(-.01,-.005,0); } static void draw_plus(void) { glVertex3f(-.10,-.005,0); glVertex3f(-.10, .005,0); glVertex3f(-.01, .005,0); glVertex3f(-.01,-.005,0); glVertex3f(-.05,-.045,0); glVertex3f(-.06,-.045,0); glVertex3f(-.06, .045,0); glVertex3f(-.05, .045,0); } static void draw_z(void) { glVertex3f( .01, .15,0); glVertex3f( .10, .15,0); glVertex3f( .09, .14,0); glVertex3f( .01, .14,0); glVertex3f( .10, .15,0); glVertex3f( .02,-.15,0); glVertex3f( .01,-.15,0); glVertex3f( .09, .15,0); glVertex3f( .01,-.15,0); glVertex3f( .02,-.14,0); glVertex3f( .10,-.14,0); glVertex3f( .10,-.15,0); } static void draw_y(void) { glVertex3f( .01, .15,0); glVertex3f( .04, .03,0); glVertex3f( .05, .03,0); glVertex3f( .02, .15,0); glVertex3f( .10, .15,0); glVertex3f( .05, .03,0); glVertex3f( .04, .03,0); glVertex3f( .09, .15,0); glVertex3f( .04, .04,0); glVertex3f( .04,-.15,0); glVertex3f( .05,-.15,0); glVertex3f( .05, .04,0); } static void draw_x(void) { glVertex3f( .01, .15,0); glVertex3f( .02, .15,0); glVertex3f( .10,-.15,0); glVertex3f( .09,-.15,0); glVertex3f( .09, .15,0); glVertex3f( .10, .15,0); glVertex3f( .02,-.15,0); glVertex3f( .01,-.15,0); } static void draw_mz(void) { glBegin(GL_QUADS); draw_minus(); draw_z(); glEnd(); } static void draw_pz(void) { glBegin(GL_QUADS); draw_plus(); draw_z(); glEnd(); } static void draw_my(void) { glBegin(GL_QUADS); draw_minus(); draw_y(); glEnd(); } static void draw_py(void) { glBegin(GL_QUADS); draw_plus(); draw_y(); glEnd(); } static void draw_mx(void) { glBegin(GL_QUADS); draw_minus(); draw_x(); glEnd(); } static void draw_px(void) { glBegin(GL_QUADS); draw_plus(); draw_x(); glEnd(); } static void draw_box(void) { int i; int j; glBegin(GL_LINES); for (i=-1;i<=1;i+=2) { for (j=-1;j<=1;j+=2) { glVertex3f(i,j,-1); glVertex3f(i,j, 1); glVertex3f(j,-1,i); glVertex3f(j, 1,i); glVertex3f(-1,i,j); glVertex3f( 1,i,j); } } glEnd(); } static void render(void) { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glRotatef(t*.2,1,1,1); glRotatef(t*.03,1,0,0); glColor3f(.5,.5,.5); glPushMatrix(); glTranslatef(0,0,-1); draw_mz(); glPopMatrix(); glPushMatrix(); glTranslatef(0,0,1); draw_pz(); glPopMatrix(); glPushMatrix(); glTranslatef(0,-1,0); glRotatef(90,0,1,0); glRotatef(-90,1,0,0); draw_my(); glPopMatrix(); glPushMatrix(); glTranslatef(0,1,0); glRotatef(90,0,1,0); glRotatef(-90,1,0,0); draw_py(); glPopMatrix(); glPushMatrix(); glTranslatef(-1,0,0); glRotatef(90,0,0,1); glRotatef(-90,1,0,0); draw_mx(); glPopMatrix(); glPushMatrix(); glTranslatef(1,0,0); glRotatef(90,0,0,1); glRotatef(-90,1,0,0); draw_px(); glPopMatrix(); glColor3f(1,1,1); draw_box(); SDL_GL_SwapBuffers(); glFinish(); }