};
SceneObject sceneObjs[MAXOBJECTS]; // An array with details of the objects in a scene
-int nObjects=0; // How many objects there are in the scene currently.
+int nObjects = 0; // How many objects there are in the scene currently.
+int curObject = -1; // The scene object that is currently selected, (-1 is no object)
+int buttonSelected = -1; // Either GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON or -1 (no button)
+int manipulateState = STATE_CAMERA_ROTATE_MOVE; // See manipulateStates enum
// Directories containing models
char *dirDefault1 = "models-textures";
char dataDir[200]; // Stores the directory name for the meshes and textures.
-int moving, startx, starty;
-
-/* Recursion level for floor drawing */
-int drawFloorRecurse = 8;
+int startx, starty;
/* Size of floor, from -n to n, floorSize must be divisible by squareSize */
int floorSize = 200;
GLfloat lineLength = 10;
/* Light 0 parameters */
-GLfloat diffuse0[]={1.0, 0.0, 0.0, 0.1};
-GLfloat ambient0[]={1.0, 0.0, 0.0, 0.1};
-GLfloat specular0[]={1.0, 0.0, 0.0, 0.1};
+GLfloat diffuse0[]={1.0, 0.0, 0.0, 1.0};
+GLfloat ambient0[]={1.0, 0.0, 0.0, 1.0};
+GLfloat specular0[]={1.0, 0.0, 0.0, 1.0};
GLfloat direction0[] = {0.0, 0.0, 0.0};
GLfloat lightPosition0[4];
GLfloat emission[] = {0.0, 0.3, 0.3, 1.0};
/* Zoom and rotate tracking */
-GLfloat zoom = 0.0, rotate = 0.0;
-GLfloat zoomFactor = 0.2, rotateFactor = 0.5;
+GLfloat zoom = 0.0, rotate = 0.0, camAngle = 40.0;
+GLfloat zoomFactor = 0.2, rotateFactor = 0.5, camAngleFactor = 0.5;
+GLfloat leftrightFactor = 0.5, nearfarFactor = 0.5, bigsmallFactor = 0.6, updownFactor = 0.03;
/* Beginning width, height */
int width = 500, height = 500;