c++ glm:无法从四元数.hpp使用toMat4

iszxjhcz  于 2023-04-08  发布在  其他
关注(0)|答案(2)|浏览(194)

我得到一个错误,当我试图使用glm。一些功能的glm工作。但我不能使用所有重载和四元数相关的事情。

1>src\foo.cpp(369): error C2039: 'toMat4': is not a member of 'glm'
    1>          d:\..\glm\glm\gtc\type_ptr.inl(35): note: see declaration of 'glm'
    1>src\foo.cpp(369): error C3861: 'toMat4': identifier not found

用这个:

#include <glm/glm.hpp> //vec3, vec4, ivec4, mat4
    #include <glm/common.hpp> //vec3, vec4, ivec4, mat4
    #include <glm/gtc/matrix_transform.hpp>
    #include <glm/gtc/type_ptr.hpp>
    #include <glm/gtc/quaternion.hpp>

    glm::mat4 t1 = glm::translate(glm::mat4x4(), -piv);
    glm::mat4 rot = glm::toMat4(trafo.orientation);
    glm::mat4 t2 = glm::translate(glm::mat4x4(), piv);
fumotvh3

fumotvh31#

在文档中,它被列在glm::gtx命名空间中。看看这里:
https://glm.g-truc.net/0.9.0/api/a00184.html
但您也可以用途:

detail::tmat4x4<T> glm::gtc::quaternion::mat4_cast  (   detail::tquat< T > const &      x   )

你已经包括在内了。看这里:
https://glm.g-truc.net/0.9.0/api/a00135.html#ae2d14d52f9fef3da00cf867f9e2e3dfa

hpxqektj

hpxqektj2#

我解决了这个问题,包括:

#include <glm/gtx/quaternion.hpp>

相关问题