added 'r' toggle to shapes demo to also animate rotation around object

x-axis, to get a better view of the model



git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1264 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
dcnieho 2012-04-22 16:39:47 +00:00
parent b5cfa418b6
commit 8bd75d7761

View File

@ -14,6 +14,7 @@
- <tt>q Q &nbsp;</tt> Quit - <tt>q Q &nbsp;</tt> Quit
- <tt>i I &nbsp;</tt> Show info - <tt>i I &nbsp;</tt> Show info
- <tt>p P &nbsp;</tt> Toggle perspective or orthographic projection - <tt>p P &nbsp;</tt> Toggle perspective or orthographic projection
- <tt>r R &nbsp;</tt> Toggle fixed or animated rotation around model X-axis
- <tt>= + &nbsp;</tt> Increase \a slices - <tt>= + &nbsp;</tt> Increase \a slices
- <tt>- _ &nbsp;</tt> Decreate \a slices - <tt>- _ &nbsp;</tt> Decreate \a slices
- <tt>, < &nbsp;</tt> Decreate \a stacks - <tt>, < &nbsp;</tt> Decreate \a stacks
@ -67,6 +68,7 @@ static double offset[ 3 ] = { 0, 0, 0 };
static GLboolean show_info = GL_TRUE; static GLboolean show_info = GL_TRUE;
static float ar; static float ar;
static GLboolean persProject = GL_TRUE; static GLboolean persProject = GL_TRUE;
static GLboolean animateXRot = GL_FALSE;
/* /*
* These one-liners draw particular objects, fetching appropriate * These one-liners draw particular objects, fetching appropriate
@ -252,6 +254,7 @@ static void display(void)
{ {
const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
const double a = t*90.0; const double a = t*90.0;
const double b = (animateXRot?t:1)*60.0;
glMatrixMode(GL_PROJECTION); glMatrixMode(GL_PROJECTION);
glLoadIdentity(); glLoadIdentity();
@ -270,14 +273,14 @@ static void display(void)
glPushMatrix(); glPushMatrix();
glTranslated(0,1.2,-6); glTranslated(0,1.2,-6);
glRotated(60,1,0,0); glRotated(b,1,0,0);
glRotated(a,0,0,1); glRotated(a,0,0,1);
table [function_index].solid (); table [function_index].solid ();
glPopMatrix(); glPopMatrix();
glPushMatrix(); glPushMatrix();
glTranslated(0,-1.2,-6); glTranslated(0,-1.2,-6);
glRotated(60,1,0,0); glRotated(b,1,0,0);
glRotated(a,0,0,1); glRotated(a,0,0,1);
table [function_index].wire (); table [function_index].wire ();
glPopMatrix(); glPopMatrix();
@ -333,6 +336,9 @@ key(unsigned char key, int x, int y)
case 'P': case 'P':
case 'p': persProject=!persProject; break; case 'p': persProject=!persProject; break;
case 'R':
case 'r': animateXRot=!animateXRot; break;
default: default:
break; break;
} }