movelight.c
/*  Here is where the light position is reset after the modeling
 *  transformation (glRotated) is called.  This places the
 *  light at a new position in world coordinates.  The cube
 *  represents the position of the light.
 */
Here is where the light position is reset after the modeling
transformation (glRotated) is called.  This places the
light at a new position in world coordinates.  The cube
represents the position of the light.
Here is where the light position is reset after the modeling transformation ( glRotated ) is called . This places the light at a new position in world coordinates . The cube represents the position of the light .
void display(void)
{
   GLfloat position[] = { 0.0, 0.0, 1.5, 1.0 };
   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glPushMatrix ();
   gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
   glPushMatrix ();
   glRotated ((GLdouble) spin, 1.0, 0.0, 0.0);
   glLightfv (GL_LIGHT0, GL_POSITION, position);
   glTranslated (0.0, 0.0, 1.5);
   glDisable (GL_LIGHTING);
   glColor3f (0.0, 1.0, 1.0);
   glutWireCube (0.1);
   glEnable (GL_LIGHTING);
   glPopMatrix ();
   glutSolidTorus (0.275, 0.85, 8, 15);
   glPopMatrix ();
   glFlush ();
}
void display ( void ) { GLfloat position [ ] = { 0.0 , 0.0 , 1.5 , 1.0 } ; glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ; glPushMatrix ( ) ; gluLookAt ( 0.0 , 0.0 , 5.0 , 0.0 , 0.0 , 0.0 , 0.0 , 1.0 , 0.0 ) ; glPushMatrix ( ) ; glRotated ( ( GLdouble ) spin , 1.0 , 0.0 , 0.0 ) ; glLightfv ( GL_LIGHT0 , GL_POSITION , position ) ; glTranslated ( 0.0 , 0.0 , 1.5 ) ; glDisable ( GL_LIGHTING ) ; glColor3f ( 0.0 , 1.0 , 1.0 ) ; glutWireCube ( 0.1 ) ; glEnable ( GL_LIGHTING ) ; glPopMatrix ( ) ; glutSolidTorus ( 0.275 , 0.85 , 8 , 15 ) ; glPopMatrix ( ) ; glFlush ( ) ; }
Here is where the light position is reset after the modeling
  transformation (glRotated) is called.
Here is where the light position is reset after the modeling transformation ( glRotated ) is called .