/* Size of floor, from -n to n */
int floorSize = 200;
+/* Current camera x, y, z coords */
+GLfloat x = 0.0, y = 0.0, z = 0.0;
+
/* Light 0 parameters */
GLfloat diffuse0[] = {1.0, 1.0, 1.0, 1.0};
GLfloat ambient0[] = {0.0, 0.0, 0.0, 1.0};
}\r
}\r
\r
+void keyboard(unsigned char key, int x, int y) {\r
+ switch(key) {\r
+ case 'w':\r
+ z = z - 1;\r
+ break;\r
+ case 'a':\r
+ x = x - 1;\r
+ break;\r
+ case 's':\r
+ z = z + 1;\r
+ break;\r
+ case 'd':\r
+ x = x + 1;\r
+ break;\r
+ case 'q':\r
+ y = y + 1;\r
+ break;\r
+ case 'e':\r
+ y = y - 1;\r
+ break;\r
+ }\r
+ printf("Camera is now at (%f, %f, %f)", x, y, z);\r
+}\r
+\r
/**\r
* Called when motion event occurs\r
* @param x Mouse x position\r
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
glLoadIdentity();\r
gluLookAt(\r
- 0.0, 10.0, 10.0, /* eye is at (x,y,z) */\r
+ x, y, z, /* eye is at (x,y,z) */\r
0.0, 0.0, 0.0, /* center is at (x,y,z) */\r
0.0, 1.0, 0.0 /* up is in postivie Y direction */\r
);\r
\r
-\r
// **NOTE: Currently this rotation function is all that moves the camera off\r
// the flat surface. Need to integrate function into gluLookAt\r
glRotatef(30.0, 1.0, 0.0, 0.0);\r
//glutReshapeFunc(windowReshape);\r
glutDisplayFunc(display);\r
glutMouseFunc(mouse);\r
+ glutKeyboardFunc(keyboard);\r
glutMotionFunc(motion);\r
\r
makeMenu();\r
void windowReshape(int w, int h);
void mouse(int button, int state, int x, int y);
+void keyboard(unsigned char key, int x, int y);
void motion(int x, int y);
void display();