X-Git-Url: https://git.ucc.asn.au/?p=atyndall%2Fcits2231.git;a=blobdiff_plain;f=globals.c;h=948327e096fa4f0d2dddfe5b4eed2bbb8744db27;hp=6b3720d5e782826ba3bbddcc880b5af728a4f8fc;hb=bc7b210b34ea0d6fb40bd163955a50d80db3a11e;hpb=a7a7e453a0b33ef33e21f3be42a0baa5e408bdbc diff --git a/globals.c b/globals.c index 6b3720d..948327e 100644 --- a/globals.c +++ b/globals.c @@ -35,7 +35,10 @@ const char *objectMenuEntries[NMESH] = { }; 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"; @@ -43,10 +46,7 @@ char *dirDefault2 = "/cslinux/examples/CITS2231/project-files/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; @@ -60,9 +60,9 @@ GLfloat factor = 1.0; GLfloat lineLength = 10; /* Light 0 parameters */ -GLfloat diffuse0[]={1.0, 1.0, 1.0, 0.1}; -GLfloat ambient0[]={1.0, 1.0, 1.0, 0.1}; -GLfloat specular0[]={1.0, 1.0, 1.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]; @@ -71,9 +71,9 @@ float lightAngle0 = 0.0, lightHeight0 = 5; int lightMoving0 = 0, lightStartX0, lightStartY0; /* Light 1 parameters */ -GLfloat diffuse1[]={1.0, 1.0, 1.0, 1.0}; -GLfloat ambient1[]={1.0, 1.0, 1.0, 1.0}; -GLfloat specular1[]={1.0, 1.0, 1.0, 1.0}; +GLfloat diffuse1[]={0.0, 1.0, 0.0, 1.0}; +GLfloat ambient1[]={0.0, 1.0, 0.0, 1.0}; +GLfloat specular1[]={0.0, 1.0, 0.0, 1.0}; GLfloat direction1[] = {0.0, 0.0, 0.0}; GLfloat lightPosition1[4]; @@ -90,8 +90,9 @@ GLfloat glightmodel[] = {0.2,0.2,0.2,1}; 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;