Итак, у меня есть задание, в котором я должен вернуть ось вращения как нормальный вектор, перпендикулярный плоскости. Вот мой код:Возврат glm :: vec3 x value возвращает null
glm::vec3 Skeleton::returnAxis()
{
GLdouble firstPoint[3];
GLdouble secondPoint[3];
GLdouble thirdPoint[3];
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
gluUnProject(0,0,0, modelview, projection, viewport, &firstPoint[0], &firstPoint[1], &firstPoint[2]);
gluUnProject(viewport[2], 0 ,0, modelview, projection, viewport, &secondPoint[0], &secondPoint[1], &secondPoint[2]);
gluUnProject(0,viewport[3],0, modelview, projection, viewport, &thirdPoint[0], &thirdPoint[1], &thirdPoint[2]);
glm::vec3 point1 = glm::vec3(secondPoint - firstPoint);
glm::vec3 point2 = glm::vec3(thirdPoint - firstPoint);
glm::vec3 axis = glm::normalize(glm::cross(point1, point2));
return axis;
std::cout << axis.x;
}
Проблема в том, что она не возвращает никаких цифр! Просто пусто. Даже после того, как я сделал typecast для float (не показано в коде выше).
Помощь!
спасибо !!!! Работает: D –