glm combina rotação e tradução

Eu tenho um objeto que primeiro quero girar (sobre o próprio centro) e depois traduzi-lo para algum ponto. Eu tenho um glm :: quat que mantém a rotação e um glm :: vec3 que mantém o ponto para o qual precisa ser traduzido.

glm::vec3 position;
glm::quat orientation;
glm::mat4 modelmatrix; <-- want to combine them both in here

modelmatrix = glm::translate(glm::toMat4(orientation),position);

Então na minha função de renderização eu faço ..

pvm = projectionMatrix*viewMatrix*modelmatrix;
glUniformMatrix4fv(pvmMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(pvm));

.. e renderiza ...

nfelizmente, o objeto orbita a origem quando aplico uma rotação (quanto mais distante a "posição" da origem, maior a órbita

Quando aplico apenas a posição que traduz bem. Quando aplico apenas a rotação, ela permanece na origem e gira em torno do centro (como esperado). Então, por que fica estranho quando eu aplico os dois? Estou perdendo algo básico?

questionAnswers(2)

yourAnswerToTheQuestion