I've implemented my own matrices and so on for sanity, and an Object which holds the VBO id, matrix, the mesh, etc. of that game "object". Here's what my object class looks like, without methods:

class Object { public: Mesh mesh; // vector of class Vertex Mat4 matrix; // 4x4 matrix unsigned int shader, vbo, texture; }

The reason I ask I did some reading and others have suggested storing explicit x, y and z coordinates as well as the matrix. What is everyone's opinion on this? What advantages are there to storing the x, y and z coordinates explicitly?

Please keep in mind that I haven't implemented collision detection as of yet in my engine, so I don't know if that affects my design as it stands. I'm really unexperienced with everything at the moment so there's some stuff I just don't know about yet.