GLM + STL:operator == missing

fho*_*fho 3 c++ opengl stl glsl glm-math

我尝试在STL容器中使用GLM向量类.只要我不尝试使用就没什么大不了的<algorithm>.大多数算法依赖于==未针对GLM类实现的运算符.

任何人都知道解决这个问题的简单方法吗?没有(重新)实现STL算法:(

GLM是一个很好的数学库,用c ++实现GLSL函数

更新

我刚刚发现glm实际上在扩展中实现了比较运算符(这里).但是我如何在stl中使用它们?

更新2

这个问题已经被这个问题所取代:如何在stl算法中使用glm的operator ==?

Gre*_*g S 5

许多STL算法接受用于对象比较的仿函数(当然,在比较包含浮点值的两个向量时,您需要特别小心).

例:

要排序std::list<glm::vec3>(由你决定是否那种排序向量会有任何实际意义),你可以使用

std::sort(myVec3List.begin(), myVec3List.end(), MyVec3ComparisonFunc)
Run Code Online (Sandbox Code Playgroud)

bool MyVec3ComparisonFunc(const glm::vec3 &vecA, const glm::vec3 &vecB)
{
 return vecA[0]<vecB[0] 
        && vecA[1]<vecB[1] 
        && vecA[2]<vecB[2];
}
Run Code Online (Sandbox Code Playgroud)

所以,幸运的是,没有必要修改GLM甚至重新发明轮子.