X-Git-Url: https://git.ucc.asn.au/?p=atyndall%2Fcits2231.git;a=blobdiff_plain;f=globals.c;h=69e1714a1699841edc01983b37bf8754795d307a;hp=800f363c217c53535038f4281f5604fef41bfcc2;hb=f8d40619ed0eba4ec9f0174f8bbf0981013185b0;hpb=8664ff7d3cbe2e5285d067231f54772b46649653 diff --git a/globals.c b/globals.c index 800f363..69e1714 100644 --- a/globals.c +++ b/globals.c @@ -35,66 +35,63 @@ 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"; -char *dirDefault2 = "/cslinux/examples/CITS2231/project-files/models-textures"; +/* Light object arrays and default values */ +LightObject lightObjs[LIGHTS]; -char dataDir[200]; // Stores the directory name for the meshes and textures. +GLfloat defaultPosition[] = {0.0, 0.0, 0.0, 0.0}; -GLfloat lightColor[] = {1.0, 1.0, 1.0, 1.0}; // White light -GLfloat lightPosition[4]; +GLfloat defaultAmbient[] = {0.8, 0.8, 0.8, 1.0}; +GLfloat defaultDiffuse[] = {0.8, 0.8, 0.8, 1.0}; +GLfloat defaultSpecular[] = {0.8, 0.8, 0.8, 1.0}; +GLfloat defaultDirection[] = {0.0, 0.0, 0.0}; -int moving, startx, starty; -int lightMoving = 0, lightStartX, lightStartY; +GLfloat defaultCutoff = 180; +GLfloat defaultExponent = 1; -/* Time varying or user-controled variables. */ -float jump = 0.0; -float lightAngle = 0.0, lightHeight = 5; -GLfloat angle = -150; /* in degrees */ -GLfloat angle2 = 30; /* in degrees */ +/* Material types */ +GLfloat materialAmbient[] = {0.2, 0.2, 0.2, 1.0}; +GLfloat materialDiffuse[] = {1.0, 0.8, 0.0, 1.0}; +GLfloat materialSpecular[] = {1.0, 1.0, 1.0, 1.0}; -/* Near and far parameters - calculates scene size */ -GLfloat near = -30; -GLfloat far = 30; +/* Light parameters */ +GLfloat lightShine = 100.0; +GLfloat lightGlobalModel[] = {0.2,0.2,0.2,1}; +GLfloat lightGlobalEmission[] = {0.0, 0.3, 0.3, 1.0}; +GLfloat lightBallSize = 0.2; -/* Near and far clipping planes - calculates clipping planes */ -GLfloat nearClip = -200; -GLfloat farClip = 200; +// Directories containing models +char *dirDefault1 = "models-textures"; +char *dirDefault2 = "/cslinux/examples/CITS2231/project-files/models-textures"; -/* Zoom factor for mouse movements */ -GLfloat zoomFactor = 1.0; +char dataDir[200]; // Stores the directory name for the meshes and textures. -/* Recursion level for floor drawing */ -int drawFloorRecurse = 8; +int startx, starty; -/* Size of floor, from -n to n */ -int floorSize = 50; +/* Size of floor, from -n to n, floorSize must be divisible by squareSize */ +int floorSize = 200; +float squareSize = 2; /* Current camera x, y, z coords */ -GLfloat camx = 0.0, camy = 0.0, camz = 0.0, rot = 0.0; +GLfloat camx = 0.0, camy = 0.0, camz = 0.0, keyrot = 0.0; +GLfloat factor = 1.0; /* Length of axis lines */ -GLfloat lineLength = 100; - -/* Light 0 parameters */ -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 emission0[] = {0.0, 0.3, 0.3, 1.0}; - -GLfloat direction0[] = {0.0, 0.0, 0.0}; -GLfloat light0_pos[] ={1.0, 1.0, 0,0, 0.5}; - -GLfloat shine = 100.0; +GLfloat lineLength = 10; -GLfloat glightmodel[] = {0.2,0.2,0.2,1}; - -/* Material types */ -GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0}; -GLfloat diffuse[] = {1.0, 0.8, 0.0, 1.0}; -GLfloat specular[] = {1.0, 1.0, 1.0, 1.0}; +/* Zoom and rotate tracking */ +GLfloat zoom = 0.0, rotate = 0.0, camAngle = 40.0; +GLfloat zoomFactor = 0.2, camRotateFactor = 0.5, camAngleFactor = 0.5; +GLfloat leftrightFactor = 0.05, nearfarFactor = 0.1, bigsmallFactor = 0.6; +GLfloat updownFactor = 0.03, rotateFactor = 0.8, texscaleFactor = 0.2; +GLfloat lleftrightFactor = 0.05, lnearfarFactor = 0.1; /* Beginning width, height */ -int width = 500, height = 500; \ No newline at end of file +int width = 700, height = 700; + +/* Texture state tracking */ +int currentGroundTexture = 0, currentMeshTexture = 0; \ No newline at end of file