这是关于理解glm源码。我想知道glm是否将其初始化为零并尝试了它。是的,即使没有提供构造函数值,也会初始化glm::vec3
和glm::mat4
。然后我想了解它是如何完成的,并阅读了glm::mat4
模板的来源。
有这个部分:
...
enum ctor{null};
// Constructors
GLM_FUNC_DECL tmat4x4();
GLM_FUNC_DECL tmat4x4(tmat4x4 const & m);
GLM_FUNC_DECL explicit tmat4x4(ctor Null);
...
我可以看到有一个(void)
构造函数(ctor)但没有定义,所以没有{...}
部分。并且explicit
ctor 0
作为参数来自enum ctor
类型的第一个元素,当然它的索引值为0
。
glm::mat4
glm::mat4 myMatrix;
如何初始化为单位矩阵
修改:在GitHub上浏览更新的源文件会带来一个mat4x4.hpp
到detail/type_mat4x4.hpp
#includes
<option>
<select class="form-control" name="expiryMonth" ng-model="expiryMonth" required>
<option value="">select month</option>
<option ng-repeat="year in years" value="{{year}}">{{year}}</option>
</select>
中的实施细节。可以看到ctor行为。
答案 0 :(得分:1)
"glm/detail/type_mat4x4.inl"
enum ctor{uninitialize}
答案 1 :(得分:1)
默认情况下它不再初始化。在包含之前定义GLM_FORCE_CTOR_INIT以强制初始化。 https://github.com/g-truc/glm/issues/809
#define GLM_FORCE_CTOR_INIT
#include <glm/glm.hpp>
答案 2 :(得分:0)
index