#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
float rotTheta=0.0;
float trans=-200.0;

void init(void)
{   glClearColor(0.8,0.8,1.0,0.0);
    glMatrixMode(GL_MODELVIEW);	
    glOrtho(-200.0,200.0,-200.0,200.0,-200.0,200.0);
}
void Graph (void)
{	glClear(GL_COLOR_BUFFER_BIT);				
	glColor3f(0.7, 0.8, 0.3);
	
          glBegin(GL_POLYGON);
glColor3f(1.0,0.0, 0.0);


glVertex2i(-200,90);
glVertex2i(-200,95);
glVertex2i(-200,100);
glVertex2i(160,100);
glVertex2i(165,95);
glVertex2i(165,90);
         glEnd();
		 glFlush();
glPushMatrix();
	glRotatef(-rotTheta,0,0,1);
	glTranslatef(trans,0,0);
		 glBegin(GL_POLYGON);
glColor3f(0.0,1.0, 1.0);
 glVertex2i(20,120);
 glVertex2i(20,130);
 glVertex2i(26,130);
 glVertex2i(26,135);
  glVertex2i(36,135);
   glVertex2i(36,130);
   glVertex2i(42,130);
   glVertex2i(42,120);
   glVertex2i(39,120);
   glVertex2i(39,115);
    glVertex2i(36,115);
	 glVertex2i(36,120);
	  glVertex2i(29,120);
	   glVertex2i(29,115);
	    glVertex2i(26,115);
		 glVertex2i(26,120);

 
         glEnd();
		 glPopMatrix();
		 glutSwapBuffers();
		 //glFlush();

}
void rotateHex(void) 
{ 
	rotTheta +=1;
	if (rotTheta > 360)
		rotTheta=0;
	glutPostRedisplay();

}

void transTheta(void)
{      trans +=0.5;
	if(trans==100)
trans=0;
	
	glutPostRedisplay();
}

void mouse( int button , int state , int x, int y )
{
	switch (button) {
	case GLUT_LEFT_BUTTON:
		if(state==GLUT_DOWN)
			glutIdleFunc(transTheta);
		//glutIdleFunc(NULL);
		break ;
	case GLUT_RIGHT_BUTTON:
		if ( state==GLUT_DOWN)
			//glutIdleFunc(rotateHex);
			glutIdleFunc(NULL);
		break;
	default:
		break;
	}
}






int main(int argc, char **argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_DOUBLE |GLUT_RGB );
	glutInitWindowPosition(50,100);
	glutInitWindowSize(500,500);
    glutCreateWindow("Animation Program");
	init();
glutDisplayFunc(Graph);
	glutMouseFunc(mouse);
	//glutIdleFunc(rotateHex);
	//glutIdleFunc(transTheta);
	
	glutMainLoop();
	return 0;
	
}
