Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Cube/Cube.h@37:524b91130885, 2019-04-29 (annotated)
- Committer:
- el17cd
- Date:
- Mon Apr 29 15:15:16 2019 +0000
- Revision:
- 37:524b91130885
- Parent:
- 36:6fbafc8bed80
- Child:
- 39:41dcf1604fdf
Improved class descriptions
Who changed what in which revision?
User | Revision | Line number | New 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 | 37:524b91130885 | 8 | *@brief A class used to instantiate a Cube object, this is the obstacle in the game and can be manipulated using the rotate and translate functions. |
el17cd | 37:524b91130885 | 9 | The cubes will be constantly moving towards the user at an increasing speed proportional to the score, using the joystick will translate the cubes horizontally |
el17cd | 37:524b91130885 | 10 | so that the user can dodge them. |
el17cd | 23:eb50ab95bb53 | 11 | *@author Christopher Doel |
el17cd | 23:eb50ab95bb53 | 12 | *@date April, 2019 |
el17cd | 23:eb50ab95bb53 | 13 | */ |
el17cd | 4:759a5c34e239 | 14 | class Cube { |
el17cd | 4:759a5c34e239 | 15 | private: |
el17cd | 17:3c9672c6e532 | 16 | float verticies[8][3]; |
el17cd | 4:759a5c34e239 | 17 | Face faces[6]; |
el17cd | 17:3c9672c6e532 | 18 | float xPos, yPos, zPos; |
el17cd | 35:fe3956825bd8 | 19 | /** sets the verticies of all the cubes faces depending on the location and size of the cube |
el17cd | 25:3995271e411c | 20 | *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for each 8 verticies |
el17cd | 25:3995271e411c | 21 | */ |
el17cd | 36:6fbafc8bed80 | 22 | void updateFacesVerticies(float (&vert)[8][3]); |
el17cd | 35:fe3956825bd8 | 23 | /** sets the verticies of an individual face of the cube |
el17cd | 25:3995271e411c | 24 | *@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 | 25 | *@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 | 26 | *@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 | 27 | *@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 | 28 | *@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 | 29 | *@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 | 30 | */ |
el17cd | 36:6fbafc8bed80 | 31 | void assignFacesVerticies(float (&face0Points)[4][3], |
el17cd | 36:6fbafc8bed80 | 32 | float (&face1Points)[4][3], float (&face2Points)[4][3], |
el17cd | 36:6fbafc8bed80 | 33 | float (&face3Points)[4][3], float (&face4Points)[4][3], |
el17cd | 36:6fbafc8bed80 | 34 | float (&face5Points)[4][3]); |
el17cd | 36:6fbafc8bed80 | 35 | |
el17cd | 4:759a5c34e239 | 36 | public: |
el17cd | 35:fe3956825bd8 | 37 | /** The constructor of the Cube class which instantiates the cube object. |
el17cd | 23:eb50ab95bb53 | 38 | *No parameters are required as the cube is initially created with a size of 5 and a position at the origin. |
el17cd | 23:eb50ab95bb53 | 39 | */ |
el17cd | 36:6fbafc8bed80 | 40 | Cube(); |
el17cd | 35:fe3956825bd8 | 41 | /** An accessor method which gets a face of the cube depending on the index provided |
el17cd | 23:eb50ab95bb53 | 42 | *@param The integer index of the face required |
el17cd | 23:eb50ab95bb53 | 43 | *@returns A face object corresponding to the index provided |
el17cd | 23:eb50ab95bb53 | 44 | */ |
el17cd | 36:6fbafc8bed80 | 45 | Face getFace(int index); |
el17cd | 35:fe3956825bd8 | 46 | /** Sets the faces of the cube to be visible so that they will be rendered |
el17cd | 23:eb50ab95bb53 | 47 | */ |
el17cd | 36:6fbafc8bed80 | 48 | void setVisible(); |
el17cd | 35:fe3956825bd8 | 49 | /** Returns whether the cube is too close to the perspective of the user |
el17cd | 23:eb50ab95bb53 | 50 | *@returns a boolean indicating whether it is too close or not |
el17cd | 23:eb50ab95bb53 | 51 | */ |
el17cd | 36:6fbafc8bed80 | 52 | bool tooClose(); |
el17cd | 36:6fbafc8bed80 | 53 | /** Performs a rotation in the X axis about the cubes centre |
el17cd | 36:6fbafc8bed80 | 54 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 36:6fbafc8bed80 | 55 | */ |
el17cd | 17:3c9672c6e532 | 56 | void rotateX(float angle); |
el17cd | 36:6fbafc8bed80 | 57 | /** Performs a rotation in the Y axis about the cubes centre |
el17cd | 23:eb50ab95bb53 | 58 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 23:eb50ab95bb53 | 59 | */ |
el17cd | 17:3c9672c6e532 | 60 | void rotateY(float angle); |
el17cd | 36:6fbafc8bed80 | 61 | /** Performs a rotation in the Z axis about the cubes centre |
el17cd | 23:eb50ab95bb53 | 62 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 23:eb50ab95bb53 | 63 | */ |
el17cd | 17:3c9672c6e532 | 64 | void rotateZ(float angle); |
el17cd | 35:fe3956825bd8 | 65 | /** Performs a translation in all axis |
el17cd | 23:eb50ab95bb53 | 66 | *@param The x offset |
el17cd | 23:eb50ab95bb53 | 67 | *@param The y offset |
el17cd | 23:eb50ab95bb53 | 68 | *@param The z offset |
el17cd | 23:eb50ab95bb53 | 69 | */ |
el17cd | 36:6fbafc8bed80 | 70 | void translate(float x, float y, float z); |
el17cd | 35:fe3956825bd8 | 71 | /** Resets the position of the cube to the origin |
el17cd | 23:eb50ab95bb53 | 72 | */ |
el17cd | 36:6fbafc8bed80 | 73 | void resetPos(); |
el17cd | 35:fe3956825bd8 | 74 | /** Returns whether the cube is behind the users perspective |
el17cd | 23:eb50ab95bb53 | 75 | *@returns a boolean value as to whether it should be despawned or not |
el17cd | 23:eb50ab95bb53 | 76 | */ |
el17cd | 36:6fbafc8bed80 | 77 | bool despawn(); |
el17cd | 4:759a5c34e239 | 78 | }; |