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:
parent
b5cfa418b6
commit
8bd75d7761
@ -14,6 +14,7 @@
|
|||||||
- <tt>q Q </tt> Quit
|
- <tt>q Q </tt> Quit
|
||||||
- <tt>i I </tt> Show info
|
- <tt>i I </tt> Show info
|
||||||
- <tt>p P </tt> Toggle perspective or orthographic projection
|
- <tt>p P </tt> Toggle perspective or orthographic projection
|
||||||
|
- <tt>r R </tt> Toggle fixed or animated rotation around model X-axis
|
||||||
- <tt>= + </tt> Increase \a slices
|
- <tt>= + </tt> Increase \a slices
|
||||||
- <tt>- _ </tt> Decreate \a slices
|
- <tt>- _ </tt> Decreate \a slices
|
||||||
- <tt>, < </tt> Decreate \a stacks
|
- <tt>, < </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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user