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
Diff: Cube/Cube.h
- Revision:
- 23:eb50ab95bb53
- Parent:
- 22:236319885874
- Child:
- 25:3995271e411c
--- a/Cube/Cube.h Wed Apr 03 15:11:12 2019 +0000 +++ b/Cube/Cube.h Wed Apr 03 16:00:50 2019 +0000 @@ -3,26 +3,73 @@ #define FACE_H #include "Face.h" #endif - +/** Cube class +*@brief A class used to instantiate a cube object, this is the obstacle in the game +*@author Christopher Doel +*@date April, 2019 +*/ class Cube { private: float verticies[8][3]; Face faces[6]; float xPos, yPos, zPos; public: + Cube(); + /**brief The constructor of the Cube class which instantiates the cube object. + *No parameters are required as the cube is initially created with a size of 5 and a position at the origin. + */ Face getFace(int index); + /** @brief An accessor method which gets a face of the cube depending on the index provided + *@param The integer index of the face required + *@returns A face object corresponding to the index provided + */ void setVisible(); + /** @brief Sets the faces of the cube to be visible so that they will be rendered + */ void updateFacesVerticies(float (&vert)[8][3]); + /** @brief sets the verticies of all the cubes faces depending on the location and size of the cube + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for each 8 verticies + */ void assignFacesVerticies(float (&face0Points)[4][3], float (&face1Points)[4][3], float (&face2Points)[4][3], float (&face3Points)[4][3], float (&face4Points)[4][3], float (&face5Points)[4][3]); + /** @brief sets the verticies of an individual face of the cube + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the first faces verticies + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the second faces verticies + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the third faces verticies + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fourth faces verticies + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fifth faces verticies + *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the sixth faces verticies + */ bool tooClose(); + /** @brief Returns whether the cube is too close to the perspective of the user + *@returns a boolean indicating whether it is too close or not + */ void rotateX(float angle); + /** @brief Performs a rotation in the X axis about the cubes centre + *@param The angle in which to rotate the cube in terms of radians, provided as a float + */ void rotateY(float angle); + /** @brief Performs a rotation in the Y axis about the cubes centre + *@param The angle in which to rotate the cube in terms of radians, provided as a float + */ void rotateZ(float angle); + /** @brief Performs a rotation in the Z axis about the cubes centre + *@param The angle in which to rotate the cube in terms of radians, provided as a float + */ void translate(float x, float y, float z); + /** @brief Performs a translation in all axis + *@param The x offset + *@param The y offset + *@param The z offset + */ void resetPos(); + /** @brief Resets the position of the cube to the origin + */ bool despawn(); + /** @brief Returns whether the cube is behind the users perspective + *@returns a boolean value as to whether it should be despawned or not + */ }; \ No newline at end of file