ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

Committer:
el17cd
Date:
Mon Apr 29 14:58:59 2019 +0000
Revision:
36:6fbafc8bed80
Parent:
35:fe3956825bd8
Child:
37:524b91130885
Ensured all doxygen descriptions are above function declarations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17cd 4:759a5c34e239 1 #include "mbed.h"
el17cd 4:759a5c34e239 2 #ifndef FACE_H
el17cd 4:759a5c34e239 3 #define FACE_H
el17cd 4:759a5c34e239 4 #include "Face.h"
el17cd 4:759a5c34e239 5 #endif
el17cd 32:9c250eda7f3f 6
el17cd 23:eb50ab95bb53 7 /** Cube class
el17cd 35:fe3956825bd8 8 *@brief A class used to instantiate a cube object, this is the obstacle in the game
el17cd 23:eb50ab95bb53 9 *@author Christopher Doel
el17cd 23:eb50ab95bb53 10 *@date April, 2019
el17cd 23:eb50ab95bb53 11 */
el17cd 4:759a5c34e239 12 class Cube {
el17cd 4:759a5c34e239 13 private:
el17cd 17:3c9672c6e532 14 float verticies[8][3];
el17cd 4:759a5c34e239 15 Face faces[6];
el17cd 17:3c9672c6e532 16 float xPos, yPos, zPos;
el17cd 35:fe3956825bd8 17 /** sets the verticies of all the cubes faces depending on the location and size of the cube
el17cd 25:3995271e411c 18 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for each 8 verticies
el17cd 25:3995271e411c 19 */
el17cd 36:6fbafc8bed80 20 void updateFacesVerticies(float (&vert)[8][3]);
el17cd 35:fe3956825bd8 21 /** sets the verticies of an individual face of the cube
el17cd 25:3995271e411c 22 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the first face verticies
el17cd 25:3995271e411c 23 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the second face verticies
el17cd 25:3995271e411c 24 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the third face verticies
el17cd 25:3995271e411c 25 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fourth face verticies
el17cd 25:3995271e411c 26 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fifth face verticies
el17cd 25:3995271e411c 27 *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the sixth faces verticies
el17cd 25:3995271e411c 28 */
el17cd 36:6fbafc8bed80 29 void assignFacesVerticies(float (&face0Points)[4][3],
el17cd 36:6fbafc8bed80 30 float (&face1Points)[4][3], float (&face2Points)[4][3],
el17cd 36:6fbafc8bed80 31 float (&face3Points)[4][3], float (&face4Points)[4][3],
el17cd 36:6fbafc8bed80 32 float (&face5Points)[4][3]);
el17cd 36:6fbafc8bed80 33
el17cd 4:759a5c34e239 34 public:
el17cd 35:fe3956825bd8 35 /** The constructor of the Cube class which instantiates the cube object.
el17cd 23:eb50ab95bb53 36 *No parameters are required as the cube is initially created with a size of 5 and a position at the origin.
el17cd 23:eb50ab95bb53 37 */
el17cd 36:6fbafc8bed80 38 Cube();
el17cd 35:fe3956825bd8 39 /** An accessor method which gets a face of the cube depending on the index provided
el17cd 23:eb50ab95bb53 40 *@param The integer index of the face required
el17cd 23:eb50ab95bb53 41 *@returns A face object corresponding to the index provided
el17cd 23:eb50ab95bb53 42 */
el17cd 36:6fbafc8bed80 43 Face getFace(int index);
el17cd 35:fe3956825bd8 44 /** Sets the faces of the cube to be visible so that they will be rendered
el17cd 23:eb50ab95bb53 45 */
el17cd 36:6fbafc8bed80 46 void setVisible();
el17cd 35:fe3956825bd8 47 /** Returns whether the cube is too close to the perspective of the user
el17cd 23:eb50ab95bb53 48 *@returns a boolean indicating whether it is too close or not
el17cd 23:eb50ab95bb53 49 */
el17cd 36:6fbafc8bed80 50 bool tooClose();
el17cd 36:6fbafc8bed80 51 /** Performs a rotation in the X axis about the cubes centre
el17cd 36:6fbafc8bed80 52 *@param The angle in which to rotate the cube in terms of radians, provided as a float
el17cd 36:6fbafc8bed80 53 */
el17cd 17:3c9672c6e532 54 void rotateX(float angle);
el17cd 36:6fbafc8bed80 55 /** Performs a rotation in the Y axis about the cubes centre
el17cd 23:eb50ab95bb53 56 *@param The angle in which to rotate the cube in terms of radians, provided as a float
el17cd 23:eb50ab95bb53 57 */
el17cd 17:3c9672c6e532 58 void rotateY(float angle);
el17cd 36:6fbafc8bed80 59 /** Performs a rotation in the Z axis about the cubes centre
el17cd 23:eb50ab95bb53 60 *@param The angle in which to rotate the cube in terms of radians, provided as a float
el17cd 23:eb50ab95bb53 61 */
el17cd 17:3c9672c6e532 62 void rotateZ(float angle);
el17cd 35:fe3956825bd8 63 /** Performs a translation in all axis
el17cd 23:eb50ab95bb53 64 *@param The x offset
el17cd 23:eb50ab95bb53 65 *@param The y offset
el17cd 23:eb50ab95bb53 66 *@param The z offset
el17cd 23:eb50ab95bb53 67 */
el17cd 36:6fbafc8bed80 68 void translate(float x, float y, float z);
el17cd 35:fe3956825bd8 69 /** Resets the position of the cube to the origin
el17cd 23:eb50ab95bb53 70 */
el17cd 36:6fbafc8bed80 71 void resetPos();
el17cd 35:fe3956825bd8 72 /** Returns whether the cube is behind the users perspective
el17cd 23:eb50ab95bb53 73 *@returns a boolean value as to whether it should be despawned or not
el17cd 23:eb50ab95bb53 74 */
el17cd 36:6fbafc8bed80 75 bool despawn();
el17cd 4:759a5c34e239 76 };