Le source: ObjetsAuxiliary.cpp
#include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include <stdio.h> #include <stdlib.h> static float anglex = 0.0F ; static float angley = 0.0F ; static int obj = 0 ; void CALLBACK display(void) { glClearColor (1.0,1.0,1.0,1.0); glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0F,0.0F,0.0F); glPushMatrix(); glRotatef(angley,0.0F,1.0F,0.0F) ; glRotatef(anglex,1.0F,0.0F,0.0F) ; switch ( obj ) { case 0 : auxWireSphere(7.0) ; break ; case 1 : auxWireCube(11.0) ; break ; case 2 : auxWireCone(6.0,9.0) ; break ; case 3 : auxWireCylinder(3.0,9.0) ; break ; case 4 : auxWireBox(4.0,7.0,12.0) ; break ; case 5 : auxWireTorus(2.0,6.0) ; break ; case 6 : auxWireTetrahedron(9.0) ; break ; case 7 : auxWireOctahedron(9.0) ; break ; case 8 : auxWireDodecahedron(9.0) ; break ; case 9 : auxWireIcosahedron(9.0) ; break ; case 10 : auxWireTeapot(7.0) ; } glPopMatrix(); glFlush(); auxSwapBuffers(); } void myinit (void) { } void CALLBACK myReshape(int w,int h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-10.0,10.0,-10.0*h/w,10.0*h/w,-10.0,10.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void CALLBACK up(void) { anglex++ ; } void CALLBACK down(void) { anglex-- ; } void CALLBACK left(void) { angley++ ; } void CALLBACK right(void) { angley-- ; } void CALLBACK space(void) { obj++ ; if ( obj == 11 ) obj = 0 ; } void main(void) { auxInitDisplayMode (AUX_DOUBLE | AUX_RGBA); auxInitPosition (0, 0, 500, 500); auxInitWindow ("Objets"); myinit (); auxKeyFunc(AUX_UP,up) ; auxKeyFunc(AUX_DOWN,down) ; auxKeyFunc(AUX_LEFT,left) ; auxKeyFunc(AUX_RIGHT,right) ; auxKeyFunc(AUX_SPACE,space) ; auxReshapeFunc (myReshape); auxMainLoop(display); }
RETOUR