Your IP : 216.73.216.40


Current Path : /var/www/html/venkat/check3/file/cg2013/pawan/
Upload File :
Current File : /var/www/html/venkat/check3/file/cg2013/pawan/rit2013027.c

		   
#include <GL/glut.h>	  
#define KEY_ESCAPE 27
typedef struct {
    int width;
	int height;
	char* title;

	float field_of_view_angle;
	float z_near;
	float z_far;
} glutWindow;

glutWindow win;


void display() 
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		     // Clear Screen and Depth Buffer
	glLoadIdentity();
	glTranslatef(0.0f,0.0f,-3.0f);			
 
	/*
	 * Triangle code starts here
	 * 3 verteces, 3 colors.
	 */
	glBegin(GL_TRIANGLES);					
	//	glColor3f(0.0f,0.0f,1.0f);			
		glVertex3f( -1.0f, 1.0f, 0.0f);		
	//	glColor3f(0.0f,1.0f,0.0f);			
		glVertex3f(1.0f,1.0f, 0.0f);		
	//	glColor3f(1.0f,0.0f,0.0f);			
		glVertex3f( 0.0f,-1.0f, 0.0f);		
	glEnd();				
	 glBegin(GL_TRIANGLES);
              glColor3f(0.0f,0.5f,1.0f);                      
                glVertex3f( -0.7f, 0.7f, 0.0f);
              glColor3f(0.0f,1.0f,-0.5f);                      
                glVertex3f(-0.1f,0.7f, 0.0f);
              glColor3f(1.0f,0.0f,0.0f);                      
                glVertex3f( -0.1f,-0.5f, 1.0f);
        glEnd();
	 glBegin(GL_TRIANGLES);
              glColor3f(0.0f,-0.5f,1.0f);
                glVertex3f( 0.1f, 0.7f, 0.0f);
              glColor3f(1.0f,1.0f,0.0f);
                glVertex3f(0.7f,0.7f, 0.0f);
              glColor3f(1.0f,0.0f,-0.5f);
                glVertex3f( 0.1f,-0.5f, 0.0f);
        glEnd();
 
	glutSwapBuffers();
}


void initialize () 
{
    glMatrixMode(GL_PROJECTION);												// select projection matrix
    glViewport(0, 0, win.width, win.height);									// set the viewport
    glMatrixMode(GL_PROJECTION);												// set matrix mode
    glLoadIdentity();															// reset projection matrix
    GLfloat aspect = (GLfloat) win.width / win.height;
	gluPerspective(win.field_of_view_angle, aspect, win.z_near, win.z_far);		// set up a perspective projection matrix
    glMatrixMode(GL_MODELVIEW);													// specify which matrix is the current matrix
    glShadeModel( GL_SMOOTH );
    glClearDepth( 1.0f );														// specify the clear value for the depth buffer
    glEnable( GL_DEPTH_TEST );
    glDepthFunc( GL_LEQUAL );
    glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );						// specify implementation-specific hints
	glClearColor(0.0, 0.0, 0.0, 1.0);											// specify clear values for the color buffers								
}


void keyboard ( unsigned char key, int mousePositionX, int mousePositionY )		
{ 
  switch ( key ) 
  {
    case KEY_ESCAPE:        
      exit ( 0 );   
      break;      

    default:      
      break;
  }
}

int main(int argc, char **argv) 
{
	// set window values
	win.width = 640;
	win.height = 600;
	win.field_of_view_angle = 45;
	win.z_near = 1.0f;
	win.z_far = 300.0f;

	// initialize and run program
	glutInit(&argc, argv);                                      // GLUT initialization
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );  // Display Mode
	glutInitWindowSize(win.width,win.height);					// set window size
	glutCreateWindow(win.title);								// create Window
	glutDisplayFunc(display);									// register Display Function
	glutIdleFunc( display );									// register Idle Function
    	glutKeyboardFunc( keyboard );								// register Keyboard Handler
	initialize();
	glutMainLoop();												// run GLUT mainloop
	return 0;
}