3 * @author Ashley Tyndall (20915779), Jenna de la Harpe (20367932)
12 // Type definitions for vertex-coordinates, normals, texture-coordinates,
13 // and triangles (via the indices of 3 vertices).
14 typedef GLfloat vertex[3];
15 typedef GLfloat normal[3];
16 typedef GLfloat texCoord[2];
17 typedef GLint vertexIndex;
18 typedef vertexIndex triangle[3];
22 int nVertices; // The number of vertices in the mesh
23 vertex* vertices; // Array with coordinates of vertices
24 normal* normals; // Array with normals of vertices
25 texCoord* texCoords; // Array with texture-coordinates of vertices
26 int nTriangles; // The number of triangles in the mesh
27 triangle* triangles; // Array of trangles via 3 indices into "vertices"
30 // A type for a 2D texture, with height and width in pixels
34 GLubyte *rgbData; // Array of bytes with the colour data for the texture
38 GLfloat amount; // Transform amount
39 GLfloat vector[3]; // Transform vector
43 int mesh; // Mesh index number
44 int texture; // Texture index number
45 float x,y,z; // Scene position
46 GLfloat scale[3]; // Scale vector
47 transform rotation; // Rotation transformation
55 M_ROTATION_TEXTURE_SCALE,
60 M_MATERIAL_AMBIENT_RGB,
61 M_MATERIAL_DIFFUSE_RGB,
62 M_MATERIAL_SPECULAR_RGB,
65 M_MATERIAL_GREEN_ADSS,
70 M_LIGHT_RGBALL_LIGHT_1,
72 M_LIGHT_RGBALL_LIGHT_2
75 // Manipulation states
76 enum manipulateStates {
77 STATE_CAMERA_ROTATE_MOVE,
78 STATE_OBJECT_POSITION_SCALE,
79 STATE_OBJECT_ROTATION_TEXTURE_SCALE