I think I missunderstand how to correctly apply translation/scale/rotation to my model matrix.

My SceneNode has a Mat4 called "mTransform". I get translation to work as expected, but applying rotation and scaling somehow causes the mesh not to be rendered on the screen.

Scale/Translate/RotateTransform corresponds to the glm:: methods.

Am I correct in the way I do this?

void SceneNode::Scale(Vec3 scaleVec) { mTransform = ScaleTransform(mTransform, scaleVec); } void SceneNode::Translate(Vec3 translateVec) { mTransform = TranslateTransform(mTransform, translateVec); } void SceneNode::Rotate(Vec3 rotateVec, const float angle) { mTransform = RotateTransform(mTransform, angle, rotateVec); }