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 x, y, z; // Amount of rotation on axis
42 int mesh; // Mesh index number
43 int texture; // Texture index number
44 GLfloat x,y,z; // Scene position
45 GLfloat scale[3]; // Scale vector
46 transform rotation; // Rotation transformation
54 M_ROTATION_TEXTURE_SCALE,
59 M_MATERIAL_AMBIENT_RGB,
60 M_MATERIAL_DIFFUSE_RGB,
61 M_MATERIAL_SPECULAR_RGB,
64 M_MATERIAL_GREEN_ADSS,
69 M_LIGHT_RGBALL_LIGHT_1,
71 M_LIGHT_RGBALL_LIGHT_2
74 // Manipulation states
75 enum manipulateStates {
76 STATE_CAMERA_ROTATE_MOVE,
77 STATE_OBJECT_POSITION_SCALE,
78 STATE_OBJECT_ROTATION_TEXTURE_SCALE