OpenGL transformando objetos con múltiples rotaciones de diferentes ejes

Estoy construyendo un programa de modelado y me gustaría hacer transformaciones en objetos en su propio espacio y luego asignar ese único objeto a un grupo para rotar alrededor de otro eje alrededor del cual gira el grupo. Sin embargo, también me gustaría poder hacer transformaciones en el propio espacio del objeto cuando se combina.

Manipulando el objeto individual, elijo el centro del objeto.

glm::mat4 transform;
transform = glm::translate(transform, - obj.meshCenter);
glm::mat4 transform1;
transform1 = glm::translate(transform1, obj.meshCenter);
obj.rotation =  transform1*obj.thisRot*transform;

Luego envío esto al sombreador,

glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(obj.translation*obj.rotation*objscale);

Ahora me gustaría rotar este objeto alrededor de otro eje, digamos un eje de (5,0,0) de 45 grados.

Ahora tengo:

glm::mat4 groupR;
groupR = glm::rotate(groupR,glm::degrees(45.0f),glm::vec3(5,0,0));
obj.groupRotation = groupR;
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, 
glm::value_ptr(obj.groupRotation*obj.translation*obj.rotation*objscale)

Ahora he movido el objeto de su espacio local al espacio de Grupo. Tengo un poco de dificultad ahora operando transformaciones en el propio espacio del objeto cuando se combina con la rotación del Grupo. Tuve un éxito limitado cuando configuré el eje groupR en (0,1,0) así:

///Translating object in its own space///
glm::mat4 R = obj.groupRotation;
obj.translation = glm::inverse(R) * obj.translate * R;

El problema aquí es que esto solo traducirá el objeto correctamente en su propio espacio si el eje de rotación de R (rotación del grupo) es igual a (0,1,0):

///Rotating object in its own space///
glm::mat4 R = obj.groupRotation;
obj.rotation = glm::inverse(R) * obj.rot * R;

De nuevo, las rotaciones son incorrectas. ¿Estoy pensando que tal vez tenga que deshacer la traducción del eje del grupoR? y luego volver a aplicarlo en alguna parte?

Respuestas a la pregunta(2)

Su respuesta a la pregunta