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
- Committer:
- el17cd
- Date:
- 2019-04-05
- Revision:
- 32:9c250eda7f3f
- Parent:
- 25:3995271e411c
- Child:
- 34:5cb9b4d01f5c
File content as of revision 32:9c250eda7f3f:
#include "mbed.h" #ifndef FACE_H #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; 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 face verticies *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the second face verticies *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the third face verticies *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fourth face verticies *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the fifth face verticies *@param The memory address of the two dimentional float array which stores all x, y, z coordinates for the sixth faces verticies */ 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 */ 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 */ };