You are on page 1of 21

#ifdef __APPLE__

#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
//#include<glut.h>
#include<stdio.h>
#include<math.h>
float s=0.0,t=0.0;
float k=0,a=0,stop1=0,right=1,left=0,stop=0,l,o,down=0,set=0,set1=0;
int lig,scene=0;
void circle(int r,int x,int y)
{
glBegin(GL_POLYGON);
for(float i=0;i<360;i++)
{
float angle=i*22/7/180;
glVertex2f(x+sin(angle)*r,y+cos(angle)*r);
}
glEnd();
}
void car()
{
glPushMatrix();
glTranslatef(-10,-10,-10);
glColor3f(1.0,1.0,0.0);
glBegin(GL_POLYGON);//A front
glVertex3f(2,5,0);
glVertex3f(2,7,0);
glVertex3f(3,8,0);
glVertex3f(5,8,0);
glVertex3f(5,5,0);
glEnd();
glBegin(GL_POLYGON);//A left side
glVertex3f(2,5,0);
glVertex3f(2,5,-5);
glVertex3f(2,7,-5);
glVertex3f(3,8,-5);
glVertex3f(3,8,0);
glVertex3f(2,7,0);
glEnd();
glBegin(GL_POLYGON);//A back
glVertex3f(2,5,-5);
glVertex3f(2,7,-5);
glVertex3f(3,8,-5);
glVertex3f(5,8,-5);
glVertex3f(5,5,-5);
glEnd();
glBegin(GL_POLYGON);//A top
glVertex3f(3,8,0);
glVertex3f(3,8,-5);
glVertex3f(5,8,-5);

glVertex3f(5,8,0);
glEnd();
glBegin(GL_POLYGON);//CD front
glVertex3f(5,5,0);
glVertex3f(5,8,0);
glVertex3f(7,10,0);
glVertex3f(15,10,0);
glVertex3f(16,8,0);
glVertex3f(16,5,0);
glEnd();
glBegin(GL_POLYGON);//CD back
glVertex3f(5,5,-5);
glVertex3f(5,8,-5);
glVertex3f(7,10,-5);
glVertex3f(15,10,-5);
glVertex3f(16,8,-5);
glVertex3f(16,5,-5);
glEnd();
glBegin(GL_POLYGON);//CD top
glVertex3f(7,10,0);
glVertex3f(7,10,-5);
glVertex3f(15,10,-5);
glVertex3f(15,10,0);
glEnd();
glBegin(GL_POLYGON);//CD left
glVertex3f(5,8,0);
glVertex3f(7,10,0);
glVertex3f(7,10,-5);
glVertex3f(5,8,-5);
glEnd();
glBegin(GL_POLYGON);//CD right
glVertex3f(15,10,0);
glVertex3f(16,8,0);
glVertex3f(16,8,-5);
glVertex3f(15,10,-5);
glEnd();
glBegin(GL_POLYGON);//F front
glVertex3f(16,8,0);
glVertex3f(20,7.5,0);
glVertex3f(20.5,7,0);
glVertex3f(21,5,0);
glVertex3f(16,5,0);
glEnd();
glBegin(GL_POLYGON);//F back
glVertex3f(16,8,-5);
glVertex3f(20,7.5,-5);
glVertex3f(20.5,7,-5);
glVertex3f(21,5,-5);
glVertex3f(16,5,-5);
glEnd();
glBegin(GL_POLYGON);//F left1
glVertex3f(21,5,0);

glVertex3f(21,5,-5);
glVertex3f(20.5,7,-5);
glVertex3f(20.5,7,0);
glEnd();
glBegin(GL_POLYGON);//F left2
glVertex3f(20,7.5,0);
glVertex3f(20,7.5,-5);
glVertex3f(20.5,7,-5);
glVertex3f(20.5,7,0);
glEnd();
glBegin(GL_POLYGON);//F left1
glVertex3f(16,8,0);
glVertex3f(16,8,-5);
glVertex3f(20,7.5,-5);
glVertex3f(20,7.5,0);
glEnd();

glBegin(GL_LINE_LOOP);
glColor3f(0,0,1);//window 1
glVertex3f(6,8,0);
glVertex3f(7.5,9.5,0);
glVertex3f(10,9.5,0);
glVertex3f(10,8,0);
glEnd();
glBegin(GL_LINE_LOOP);//window 2
glVertex3f(11,8,0);
glVertex3f(15,8,0);
glVertex3f(14,9.5,0);
glVertex3f(11,9.5,0);
glEnd();
glPushMatrix();
glColor3f(1,0,0);
circle(1,6,5);
glColor3f(1,0,0);
circle(1,17,5);
glPopMatrix();
glPushMatrix();
glTranslatef(0,0,-5);
circle(1,6,5);
circle(1,17,5);
glPopMatrix();
glPopMatrix();
}
void garage()
{
glPushMatrix();
glEnable(GL_BLEND);
glTranslatef(30,20,-20);
glBegin(GL_POLYGON);//front
glColor4f(0,0,1,.4);

glVertex3f(5,0,0);
glVertex3f(15,0,0);
glVertex3f(15,15,0);
glVertex3f(5,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//back
glVertex3f(5,0,15);
glVertex3f(15,0,15);
glVertex3f(15,15,15);
glVertex3f(5,15,15);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//left
glVertex3f(5,0,0);
glVertex3f(5,0,15);
glVertex3f(5,15,15);
glVertex3f(5,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//right
glVertex3f(15,0,0);
glVertex3f(15,0,15);
glVertex3f(15,15,15);
glVertex3f(15,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//up
glVertex3f(5,15,0);
glVertex3f(15,15,0);
glVertex3f(15,15,15);
glVertex3f(5,15,15);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//down
glVertex3f(5,0,0);
glVertex3f(15,0,0);
glVertex3f(15,0,15);
glVertex3f(5,0,15);
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
}
void biggarage()
{
glPushMatrix();
glEnable(GL_BLEND);
glTranslatef(30,20,-20);
glBegin(GL_POLYGON);//front
glColor4f(0,0,1,.4);

glVertex3f(16,0,0);
glVertex3f(26,0,0);
glVertex3f(26,15,0);
glVertex3f(16,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//back
glVertex3f(16,0,15);
glVertex3f(26,0,15);
glVertex3f(26,15,15);
glVertex3f(16,15,15);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//left
glVertex3f(16,0,0);
glVertex3f(16,0,15);
glVertex3f(16,15,15);
glVertex3f(16,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//right
glVertex3f(26,0,0);
glVertex3f(26,0,15);
glVertex3f(26,15,15);
glVertex3f(26,15,0);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//up
glVertex3f(16,15,0);
glVertex3f(26,15,0);
glVertex3f(26,15,15);
glVertex3f(16,15,15);
glEnd();
glBegin(GL_POLYGON);
glColor4f(0,0,1,.4);//down
glVertex3f(16,0,0);
glVertex3f(26,0,0);
glVertex3f(26,0,15);
glVertex3f(16,0,15);
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
}
void garagepush()
{
glPushMatrix();
glTranslatef(4,-17,18);
garage();
glPopMatrix();
}

void mouse(int button,int state,int x,int y)


{
if(button==GLUT_LEFT_BUTTON&&state==GLUT_DOWN)
{
glPushMatrix();
glTranslatef(0,-20,0);
garage();
glScalef(2.000,0.0,0.0);
garage();
glPopMatrix();
/*
if(s<=-15)
{
glPushMatrix();
glTranslatef(0,-s,0);
car();
glPopMatrix();
}
//glScalef(-2,-2,-2);
//glPushMatrix();
//glScalef(2.001,2.001,0);
//car();
glutPostRedisplay();
//glScalef(2.001,2.001,0);
//car();
//glPopMatrix();
}
if(button==GLUT_RIGHT_BUTTON&&state==GLUT_DOWN)
{
//glScalef(-2.001,2.001,-2.0);
glClearColor(1.0,1.0,1.0,1.0);
glutPostRedisplay();
car()*/
}
glutPostRedisplay();
}
void roof1()
{
glBegin(GL_POLYGON);//front
glVertex3f(-8,38,0);
glVertex3f(-2,38,0);
glVertex3f(-5,43,0);
glEnd();
glBegin(GL_POLYGON);//back
glVertex3f(-8,38,20);

glVertex3f(-2,38,20);
glVertex3f(-5,43,20);
glEnd();
}
void roofpush()
{
glColor3f(0,0,0);
roof1();
glPushMatrix();
glTranslatef(22,0,0);
glColor3f(.5,0,.7);
roof1();
glTranslatef(15,0,0);
glColor3f(.5,0.8,.0);
roof1();
glPopMatrix();
}

void rect()
{
glBegin(GL_POLYGON);//front
glVertex3f(-8,38,0);
glVertex3f(-8,18,0);
glVertex3f(-2,18,0);
glVertex3f(-2,38,0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-8,38,10);//back
glVertex3f(-8,18,10);
glVertex3f(-2,18,10);
glVertex3f(-2,38,10);
glEnd();
glBegin(GL_POLYGON);//lhs
glVertex3f(-8,38,0);
glVertex3f(-8,18,0);
glVertex3f(-8,18,10);
glVertex3f(-8,38,10);
glEnd();
glBegin(GL_POLYGON);//rhs
glVertex3f(-2,38,0);
glVertex3f(-2,18,0);
glVertex3f(-2,18,10);
glVertex3f(-2,38,10);
glEnd();
glBegin(GL_POLYGON);//top
glVertex3f(-8,38,10);
glVertex3f(-8,38,0);
glVertex3f(-2,38,0);
glVertex3f(-2,38,10);

glEnd();
glBegin(GL_POLYGON);//bottom
glVertex3f(-8,18,10);
glVertex3f(-8,18,0);
glVertex3f(-2,18,0);
glVertex3f(-2,18,10);
glEnd();
}
void rect1()
{
//glColor3f(0,0,1);
glBegin(GL_POLYGON);//front
glVertex3f(-8,45,0);
glVertex3f(-8,18,0);
glVertex3f(0,18,0);
glVertex3f(0,45,0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-8,45,10);//back
glVertex3f(-8,18,10);
glVertex3f(0,18,10);
glVertex3f(0,45,10);
glEnd();
glBegin(GL_POLYGON);//lhs
glVertex3f(-8,45,0);
glVertex3f(-8,18,0);
glVertex3f(-8,18,10);
glVertex3f(-8,45,10);
glEnd();
glBegin(GL_POLYGON);//rhs
glVertex3f(0,45,0);
glVertex3f(0,18,0);
glVertex3f(0,18,10);
glVertex3f(0,45,10);
glEnd();
glBegin(GL_POLYGON);//top
glVertex3f(-8,45,10);
glVertex3f(-8,45,0);
glVertex3f(0,38,0);
glVertex3f(0,38,10);
glEnd();
glBegin(GL_POLYGON);//bottom
glVertex3f(-8,18,10);
glVertex3f(-8,18,0);
glVertex3f(0,18,0);
glVertex3f(0,18,10);
glEnd();
}

void window()
{
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//1
glVertex3f(-7,23,0);
glVertex3f(-7,20,0);
glVertex3f(-6,20,0);
glVertex3f(-6,23,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//2
glVertex3f(-4,23,0);
glVertex3f(-4,20,0);
glVertex3f(-3,20,0);
glVertex3f(-3,23,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//
glVertex3f(-7,28,0);
glVertex3f(-7,25,0);
glVertex3f(-6,25,0);
glVertex3f(-6,28,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//
glVertex3f(-4,28,0);
glVertex3f(-4,25,0);
glVertex3f(-3,25,0);
glVertex3f(-3,28,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//front
glVertex3f(-7,33,0);
glVertex3f(-7,30,0);
glVertex3f(-6,30,0);
glVertex3f(-6,33,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//front
glVertex3f(-4,33,0);
glVertex3f(-4,30,0);
glVertex3f(-3,30,0);
glVertex3f(-3,33,0);
glEnd();
}
void windows()
{
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//1
glVertex3f(-7,23,0);
glVertex3f(-7,20,0);
glVertex3f(-6,20,0);
glVertex3f(-6,23,0);
glEnd();
//glColor3f(0,0.8,0.6);

glBegin(GL_POLYGON);//2
glVertex3f(-2,23,0);
glVertex3f(-2,20,0);
glVertex3f(-1,20,0);
glVertex3f(-1,23,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//3
glVertex3f(-7,28,0);
glVertex3f(-7,25,0);
glVertex3f(-6,25,0);
glVertex3f(-6,28,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//4
glVertex3f(-2,28,0);
glVertex3f(-2,25,0);
glVertex3f(-1,25,0);
glVertex3f(-1,28,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//5
glVertex3f(-7,33,0);
glVertex3f(-7,30,0);
glVertex3f(-6,30,0);
glVertex3f(-6,33,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//6
glVertex3f(-2,33,0);
glVertex3f(-2,30,0);
glVertex3f(-1,30,0);
glVertex3f(-1,33,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//7
glVertex3f(-7,38,0);
glVertex3f(-7,35,0);
glVertex3f(-6,35,0);
glVertex3f(-6,38,0);
glEnd();
//glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//8
glVertex3f(-2,38,0);
glVertex3f(-2,35,0);
glVertex3f(-1,35,0);
glVertex3f(-1,38,0);
glEnd();
//

glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//9
glVertex3f(-7,43,0);
glVertex3f(-7,40,0);
glVertex3f(-6,40,0);
glVertex3f(-6,43,0);

glEnd();
//

glColor3f(0,0.8,0.6);
glBegin(GL_POLYGON);//10
glVertex3f(-2,43,0);
glVertex3f(-2,40,0);
glVertex3f(-1,40,0);
glVertex3f(-1,43,0);
glEnd();

}
void light()
{
//
GLfloat
GLfloat
(45)
//
GLfloat
GLfloat

light_pos0[]={-0,-60,10,150};
light_pos0[]={0,-25,50,1}; //use this change y-axis(-65) x-axis
ambient0[]={.6,.9,0.3,1};
ambient0[]={.3,.3,.3,-5};

//use this

glEnable(GL_LIGHTING);
//enable lighting
glEnable(GL_LIGHT0);
// enable light source
glLightfv(GL_LIGHT0,GL_POSITION,light_pos0);
urce is specified at that position
glLightfv(GL_LIGHT0,GL_AMBIENT,ambient0);
(uniform) lighting
glEnable(GL_COLOR_MATERIAL);
}
void mykey(unsigned char key,int x,int y)
{
if(key=='c')
{

// rotation

glPushMatrix();
a++;
glRotatef(a,1,1,0);
glutPostRedisplay();
glPopMatrix();
}
if(key=='r')

// rotation stops

{
a=0;
}
if(key=='q')
{
set=1;
s=0;
}
if(key=='w')
{
set1=1;
t=0;
}

// car moves

// car moves

// light so
// ambient

if(!stop)
{
if(s>52)
{
right=0;
}
if(key=='a')
{
s--;
left=1;
}
if(left==1)
{
s--;
if(s==0)
stop=1;
}
}
if(key =='l')
lig=1;
if(key =='o')
lig=0;
//glutPostRedisplay();
}
void road()
{
glColor3f(0,0,0);
glTranslatef(0,5,0);
glBegin(GL_POLYGON);//front
glVertex3f(-25,8,0);
glVertex3f(-25,-8,0);
glVertex3f(60,-8,0);
glVertex3f(60,8,0);
glEnd();
glBegin(GL_POLYGON);//back
glVertex3f(-25,8,10);
glVertex3f(-25,-8,10);
glVertex3f(60,-8,10);
glVertex3f(60,8,10);
glEnd();
glBegin(GL_POLYGON);//left
glVertex3f(-25,8,0);
glVertex3f(-25,-8,10);
glVertex3f(-25,-8,10);
glVertex3f(25,-8,0);
glEnd();
glBegin(GL_POLYGON);//right
glVertex3f(60,8,0);

glVertex3f(60,8,10);
glVertex3f(60,-8,10);
glVertex3f(60,-8,0);
glEnd();
glBegin(GL_POLYGON);//top
glVertex3f(-25,8,10);
glVertex3f(-25,8,0);
glVertex3f(60,8,0);
glVertex3f(60,8,10);
glEnd();
glBegin(GL_POLYGON);//bottom
glVertex3f(-25,-8,10);
glVertex3f(-25,-8,0);
glVertex3f(60,-8,0);
glVertex3f(60,-8,10);
glEnd();
}
void smaltre()
{
glPushMatrix();
//glTranslatef(0,3,0);
glColor3f(0.0,1,0.0);
glBegin(GL_POLYGON);
glVertex3f(-10,18,0);
glVertex3f(-11,26,0);
glVertex3f(-12,18,0);
glEnd();
glPopMatrix();
}
/*
void bigtre()
{
glPushMatrix();
glTranslatef(-5,18,0);
//glTranslatef(0,-5,0);
glColor3f(0,1,0);
glBegin(GL_POLYGON);
glVertex3f(-11,18,0);
glVertex3f(-13,32,0);
glVertex3f(-14,18,0);
glEnd();
glPopMatrix();
}

*/
void strunk()
{
glPushMatrix();
glTranslatef(-4,16,0);
glColor3f(1,0.4,0);

glBegin(GL_POLYGON);//downpart
glVertex3f(-12.5,16,0);
glVertex3f(-13,16,0);
glVertex3f(-13,13,0);
glVertex3f(-12.5,13,0);
glEnd();
glPopMatrix();
glFlush();
}
/*
void trunk()
{
glPushMatrix();
glTranslatef(-5,18,0);
glColor3f(1,0.4,0);
glBegin(GL_POLYGON);//downpart
glVertex3f(-12,18,0);
glVertex3f(-13,18,0);
glVertex3f(-13,14,0);
glVertex3f(-12,14,0);
glEnd();
glFlush();
/*glColor3f(0.3,0.4,0);
glBegin(GL_POLYGON);
glVertex3f(-8,16,0);
glVertex3f(-8,5,0);
glVertex3f(-8,5,0);
glEnd();

/*
}

glColor3f(0.3,0.4,0);
glBegin(GL_POLYGON);
glVertex3f(-8,18,0);
glVertex3f(-8,5,0);
glVertex3f(-8,5,0);
glEnd();*/
glPopMatrix();

void line()
{
glPushMatrix();
glBegin(GL_POLYGON);
glVertex3f(-8,22,0);
glVertex3f(-2,22,0);
glVertex3f(-2,24,0);
glVertex3f(-8,24,0);
glEnd();
glPopMatrix();
}
void linepush()
{
glColor3f(1,0,0);
glTranslatef(10,0,0);
line();
}

void bigtrepush()
{
glPushMatrix();
glTranslatef(10,0,0);
bigtre();
glTranslatef(0,0,0);
trunk();
glTranslatef(15,0,0);
bigtre();
glTranslatef(0,0,0);
trunk();
glTranslatef(0,-45,0);
bigtre();
glTranslatef(0,0,0);
trunk();
glPopMatrix();
}
*/
void buildings()
{
glPushMatrix();
/*glColor3f(0.4,0,0.9);
glTranslatef(2,0,0);
rect();
glColor3f(0.5,0.4,0.6);
window();*/
glColor3f(0.4,.5,0.0);
rect();
glColor3f(0.4,0,0.9);
glTranslatef(7,0,0);
rect();
glColor3f(0.5,0.4,0.6);
window();
glColor3f(0,0.4,1);
glTranslatef(15,0,0);
rect();
glColor3f(0,0,1);
window();
glTranslatef(15,0,0);
rect();
glColor3f(0.9,0,.6);
window();
glPopMatrix();
}
void buildings1()
{
glPushMatrix();
glColor3f(1,0,0);
glTranslatef(-9,0,0);
rect1();
glColor3f(0,0,0);
windows();
glColor3f(0,0.9,0.0);
glTranslatef(22.5,0,0);

rect1();
glColor3f(0.4,0.9,0.5);
windows();
glColor3f(.2,0.7,0.5);
glTranslatef(15,0,0);
rect1();
glColor3f(1,0,0);
windows();
glPopMatrix();
}
void smaltrepush()
{
glPushMatrix();
glTranslatef(-3,13,0);
smaltre();
glTranslatef(6.0,-14,0);
strunk();
glTranslatef(10,16,0);
smaltre();
glTranslatef(6,-14,0);
strunk();
glTranslatef(10,-16,0);
smaltre();
glTranslatef(6,-14,0);
strunk();
glTranslatef(0,-8,0);
smaltre();
glTranslatef(6,-14,0);
strunk();
glTranslatef(0,-5,0);
smaltre();
glTranslatef(6,-14,0);
strunk();
glPopMatrix();
}

void drawText(float x,float y,float z,char *s)


{
glRasterPos3f(x,y,z);
for(char *c=s;*c!='\0';c++)
{
if(scene==0)
{
glColor3f(0,1,1);
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24 ,*c);
}
else
{
glColor3f(1,0,0);
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18 ,*c);
}

}
}
void roadpush2()
{
glPushMatrix();
glTranslatef(-5,-13,0);
road();
glPopMatrix();
}
void carpush()
{
glPushMatrix();
glTranslatef(-15,12,18);
glTranslatef(s,0,0);
car();
glPopMatrix();
}
void carpush1()
{
glPushMatrix();
glTranslatef(-15,-4,17.5);
glTranslatef(t,0,0);
car();
glPopMatrix();
}
void StartPage()
{
glColor3f(1,0,0);
drawText(-5,25,0,"COMPUTER GRAPHICS PROJECT ");
glColor3f(1,0,0);
drawText(2,15,0,"VIRTUAL MEMORY");
}
void scene1()
{
glPushMatrix();
glPushMatrix();
roofpush();
buildings();
window();
buildings1();
/*strunk();*/
/*glTranslatef(-5,18,0);*/
/*bigtre();
smaltre();*/
/*glPopMatrix();*/
road();
garagepush();
if(set==1)
{
carpush();
}
glPopMatrix();

/*glPushMatrix();*/
/*glTranslatef(4,0,0);
garage();*/
glPopMatrix();
/*bigtrepush();
smaltrepush();*/
}
void scene2()
{
glPushMatrix();
glPushMatrix();
buildings();
window();
buildings1();
/*strunk();
glTranslatef(-5,18,0);
bigtre();
smaltre();*/
roadpush2();
glPopMatrix();
if(set1=1)
{
carpush1();
}
/*if(stop)
{
glTranslatef(0,s,0);
car();
}*/
glPopMatrix();
//glPushMatrix();
//glTranslatef(4,0,5);
//
////garage();
//glPopMatrix();
/*glPushMatrix();
glTranslatef(-10,-12,0);
road();
glPopMatrix();*/
glPushMatrix();
glTranslatef(-50,-36,20);
glScalef(2.2,1.2,1.2);
garage();
glPopMatrix();
glPushMatrix();
glTranslatef(12,21,0);

smaltre();
/*glTranslatef(10,16,0);
strunk();*/
glPopMatrix();
glPopMatrix();
}
void idle()
{
/*if(s<52&&right==1)
s=s+.1;*/
if(s>0&&left==1)
s=s-.1;
/*if(down==1)
s=s+.1;*/
if(scene==1)
{
if(s<=52)
s+=.3;
glutPostRedisplay();
}
if(scene==2)
{
if(t<=52)
t+=.3;
glutPostRedisplay();
}
glutPostRedisplay();
}
void menu(int d)
{
switch(d)
{
case 0:
scene=0;
StartPage();
break;
case 1:
scene=1;
scene1();
break;
case 2:
scene=2;
scene2();
break;
case 3:stop1=1;
glutIdleFunc(NULL);
break;

case 4:glutIdleFunc(idle);
stop1=0;
break;
case 5:
scene=3;
break;
case 6:exit(0);
}
}
void Display()
{
glRotatef(a,1,1,0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,1,1);
if(lig==1)
light();
// enable lighting
else
glDisable(GL_LIGHT0);
switch(scene)
{
case 0:glPushMatrix();
glClearColor(1,1,1,1);
glColor3f(0,1,1);
StartPage();
glutPostRedisplay();
glPushMatrix();
break;
case 1:glPushMatrix();
glClearColor(.6,.6,.6,1);
scene1();
glPopMatrix();
glutPostRedisplay();
break;
case 2:glPushMatrix();
scene2();
glPopMatrix();
glutPostRedisplay();
break;
case 3:
glClearColor(0.3,0.2,0.5,1);
//glColor3f(0,0,1);
drawText(-20,10,0,"MADE BY");
//glColor3f(0,0,1);
drawText(-20,5,0,"JOSEPH TOM
//glColor3f(0,0,1);
drawText(-20,0,0,"KIRAN S
glutPostRedisplay();
break;
}
glutSwapBuffers();
}

1MS07CS127");
1MS07CS129");

void Init()
{
glClearColor(.5,0.5,0.5,0);
glPointSize(1.0);
light();
//glOrtho(-100,100,-100,100,-100,100);
glOrtho(-25,50,-25,50,-100,100);
// for 3D viewing
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowSize(800,800);
glutInitWindowPosition(10,10);
glutCreateWindow("virtual memory");
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glutDisplayFunc(Display);
glutKeyboardFunc(mykey);
glutMouseFunc(mouse);
glutCreateMenu(menu);
glutAddMenuEntry("FrontPage",0);
glutAddMenuEntry("scene1",1);
glutAddMenuEntry("scene2",2);
glutAddMenuEntry("pause",3);
glutAddMenuEntry("continue",4);
glutAddMenuEntry("credits",5);
glutAddMenuEntry("exit",6);
glutAttachMenu(GLUT_RIGHT_BUTTON);
Init();
if(stop1)
glutIdleFunc(NULL);
else
glutIdleFunc(idle);
glutMainLoop();
}

You might also like