It's so rewarding to see something that started as a single huge file that has no OOP in it at all, to be refactored into tens of files and classes, fully OOP, fully abstracted.
Additions of this weekend were:
- The GraphicsObject abstract class, from which all concrete objects should inherit.
- The GraphicsObjectManager class, a singleton that manages a list of GraphicsObjects.
- The VBO abstract class, serves as a base for all other concrete VBOs (vertex, color, texture, ..).
- The VertexVBO class, a concrete VBO that copies vertex data into GPU memory.
- The IndicesVBO class, which contains the object's faces indices that will be copied to GPU memory.
- The VAO class, that associates several VBOs with itself.
- Camera was fully refactored to include the frustum info.
- The Pyramid was fully refactored to be a GraphicsObject.
- Scene was refactored, to use the GraphicsObjectManager.
I'm still very far away from meeting the specs, I'm really worried. I hope I can get most of them done by the end of the next weekend.