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@25:3995271e411c, 2019-04-03 (annotated)
- Committer:
- el17cd
- Date:
- Wed Apr 03 20:03:47 2019 +0000
- Revision:
- 25:3995271e411c
- Parent:
- 23:eb50ab95bb53
- Child:
- 32:9c250eda7f3f
amended cube.cpp and documented cube.h
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 | 23:eb50ab95bb53 | 6 | /** Cube class |
el17cd | 23:eb50ab95bb53 | 7 | *@brief A class used to instantiate a cube object, this is the obstacle in the game |
el17cd | 23:eb50ab95bb53 | 8 | *@author Christopher Doel |
el17cd | 23:eb50ab95bb53 | 9 | *@date April, 2019 |
el17cd | 23:eb50ab95bb53 | 10 | */ |
el17cd | 4:759a5c34e239 | 11 | class Cube { |
el17cd | 4:759a5c34e239 | 12 | private: |
el17cd | 17:3c9672c6e532 | 13 | float verticies[8][3]; |
el17cd | 4:759a5c34e239 | 14 | Face faces[6]; |
el17cd | 17:3c9672c6e532 | 15 | float xPos, yPos, zPos; |
el17cd | 25:3995271e411c | 16 | void updateFacesVerticies(float (&vert)[8][3]); |
el17cd | 25:3995271e411c | 17 | /** @brief 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 | 25:3995271e411c | 20 | void assignFacesVerticies(float (&face0Points)[4][3], |
el17cd | 25:3995271e411c | 21 | float (&face1Points)[4][3], float (&face2Points)[4][3], |
el17cd | 25:3995271e411c | 22 | float (&face3Points)[4][3], float (&face4Points)[4][3], |
el17cd | 25:3995271e411c | 23 | float (&face5Points)[4][3]); |
el17cd | 25:3995271e411c | 24 | /** @brief sets the verticies of an individual face of the cube |
el17cd | 25:3995271e411c | 25 | *@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 | 26 | *@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 | 27 | *@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 | 28 | *@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 | 29 | *@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 | 30 | *@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 | 31 | */ |
el17cd | 4:759a5c34e239 | 32 | public: |
el17cd | 16:64cd7bc094f9 | 33 | Cube(); |
el17cd | 23:eb50ab95bb53 | 34 | /**brief The constructor of the Cube class which instantiates the cube object. |
el17cd | 23:eb50ab95bb53 | 35 | *No parameters are required as the cube is initially created with a size of 5 and a position at the origin. |
el17cd | 23:eb50ab95bb53 | 36 | */ |
el17cd | 16:64cd7bc094f9 | 37 | Face getFace(int index); |
el17cd | 23:eb50ab95bb53 | 38 | /** @brief An accessor method which gets a face of the cube depending on the index provided |
el17cd | 23:eb50ab95bb53 | 39 | *@param The integer index of the face required |
el17cd | 23:eb50ab95bb53 | 40 | *@returns A face object corresponding to the index provided |
el17cd | 23:eb50ab95bb53 | 41 | */ |
el17cd | 22:236319885874 | 42 | void setVisible(); |
el17cd | 23:eb50ab95bb53 | 43 | /** @brief Sets the faces of the cube to be visible so that they will be rendered |
el17cd | 23:eb50ab95bb53 | 44 | */ |
el17cd | 16:64cd7bc094f9 | 45 | bool tooClose(); |
el17cd | 23:eb50ab95bb53 | 46 | /** @brief Returns whether the cube is too close to the perspective of the user |
el17cd | 23:eb50ab95bb53 | 47 | *@returns a boolean indicating whether it is too close or not |
el17cd | 23:eb50ab95bb53 | 48 | */ |
el17cd | 17:3c9672c6e532 | 49 | void rotateX(float angle); |
el17cd | 23:eb50ab95bb53 | 50 | /** @brief Performs a rotation in the X axis about the cubes centre |
el17cd | 23:eb50ab95bb53 | 51 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 23:eb50ab95bb53 | 52 | */ |
el17cd | 17:3c9672c6e532 | 53 | void rotateY(float angle); |
el17cd | 23:eb50ab95bb53 | 54 | /** @brief Performs a rotation in the Y axis about the cubes centre |
el17cd | 23:eb50ab95bb53 | 55 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 23:eb50ab95bb53 | 56 | */ |
el17cd | 17:3c9672c6e532 | 57 | void rotateZ(float angle); |
el17cd | 23:eb50ab95bb53 | 58 | /** @brief Performs a rotation in the Z axis about the cubes centre |
el17cd | 23:eb50ab95bb53 | 59 | *@param The angle in which to rotate the cube in terms of radians, provided as a float |
el17cd | 23:eb50ab95bb53 | 60 | */ |
el17cd | 17:3c9672c6e532 | 61 | void translate(float x, float y, float z); |
el17cd | 23:eb50ab95bb53 | 62 | /** @brief Performs a translation in all axis |
el17cd | 23:eb50ab95bb53 | 63 | *@param The x offset |
el17cd | 23:eb50ab95bb53 | 64 | *@param The y offset |
el17cd | 23:eb50ab95bb53 | 65 | *@param The z offset |
el17cd | 23:eb50ab95bb53 | 66 | */ |
el17cd | 20:3ca430241df0 | 67 | void resetPos(); |
el17cd | 23:eb50ab95bb53 | 68 | /** @brief Resets the position of the cube to the origin |
el17cd | 23:eb50ab95bb53 | 69 | */ |
el17cd | 16:64cd7bc094f9 | 70 | bool despawn(); |
el17cd | 23:eb50ab95bb53 | 71 | /** @brief Returns whether the cube is behind the users perspective |
el17cd | 23:eb50ab95bb53 | 72 | *@returns a boolean value as to whether it should be despawned or not |
el17cd | 23:eb50ab95bb53 | 73 | */ |
el17cd | 4:759a5c34e239 | 74 | }; |