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@36:6fbafc8bed80, 2019-04-29 (annotated)
- 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?
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 | 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 | }; |