(no commit message)
[atyndall/cits2231.git] / globals.c
index 467d27b..df2e796 100644 (file)
--- a/globals.c
+++ b/globals.c
@@ -35,63 +35,63 @@ const char *objectMenuEntries[NMESH] = {
 };
 
 SceneObject sceneObjs[MAXOBJECTS];  // An array with details of the objects in a scene
 };
 
 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 */
 
 /* 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 */
 
 /* Length of axis lines */
-GLfloat lineLength = 100;
+GLfloat lineLength = 10;
 
 
-/* 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};
+/* Zoom and rotate tracking */
+GLfloat zoom = 0.1, rotate = 0.1, 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;
 
 
-GLfloat direction0[] = {0.0, 0.0, 0.0};
-GLfloat light0_pos[] ={1.0, 1.0, 0,0, 0.5};
+/* Beginning width, height */
+int width = 700, height = 700;
 
 
-GLfloat shine = 100.0;
-
-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};
\ No newline at end of file
+/* Texture state tracking */
+int currentGroundTexture = 0, currentMeshTexture = 0;
\ No newline at end of file

UCC git Repository :: git.ucc.asn.au