2013-09-26 2 views
4

поэтому у меня есть ориентация моего объекта, хранящегося в glm :: fquat, и я хочу использовать его для поворота моей модели. Как мне это сделать?Преобразование glm quaternion в матрицу вращения и использование ее с opengl

я попытался это:

glPushMatrix(); 
    glTranslatef(position.x, position.y, position.z); 
    glMultMatrixf(glm::mat4_cast(orientation)); 
    glCallList(modelID); 
glPopMatrix(); 

, но я получил эту ошибку:

error: cannot convert 'glm::detail::tmat4x4<float>' to 'const GLfloat* {aka const float*}' for argument '1' to 'void glMultMatrixf(const GLfloat*)'| 

им, очевидно, делает что-то неправильно так, Что правильный способ сделать это?

ответ

3

GLM не будет/не может (?) Автоматически отбрасывать mat4 до GLfloat* так you have to help it along a bit.

Попробуйте это:

#include <glm/gtc/type_ptr.hpp> 
glMultMatrixf(glm::value_ptr(glm::mat4_cast(orientation))); 

Это может также работать:

glMultMatrixf(&glm::mat4_cast(orientation)[0][0]); 
+0

спасибо большое! оба эти метода работают. не могу сказать, я понимаю это tho. но он работает. это все, что имеет значение :) – user2820068

 Смежные вопросы

  • Нет связанных вопросов^_^