Add simdMat4 static constants

- Tests, too
This commit is contained in:
Jesse Talavera-Greenberg 2015-10-05 19:31:17 -04:00
parent ef320a2a2f
commit 57e6ea071d
3 changed files with 21 additions and 1 deletions

View file

@ -83,6 +83,11 @@ namespace detail
static GLM_RELAXED_CONSTEXPR precision prec = defaultp;
# endif//GLM_META_PROG_HELPERS
# ifdef GLM_STATIC_CONST_MEMBERS
static const type ZERO;
static const type IDENTITY;
# endif
GLM_FUNC_DECL length_t length() const;
fvec4SIMD Data[4];

View file

@ -61,6 +61,11 @@ GLM_FUNC_QUALIFIER fvec4SIMD const & fmat4x4SIMD::operator[]
return this->Data[i];
}
#ifdef GLM_STATIC_CONST_MEMBERS
const fmat4x4SIMD fmat4x4SIMD::ZERO(0);
const fmat4x4SIMD fmat4x4SIMD::IDENTITY(1);
#endif
//////////////////////////////////////////////////////////////
// Constructors

View file

@ -29,6 +29,7 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#define GLM_STATIC_CONST_MEMBERS
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/quaternion.hpp>
@ -252,6 +253,15 @@ int test_compute_gtx()
return 0;
}
int test_static_const() {
int Error(0);
Error += glm::simdMat4(1) == glm::simdMat4::IDENTITY ? 0 : 1;
Error += glm::simdMat4(0) == glm::simdMat4::ZERO ? 0 : 1;
return Error;
}
int main()
{
int Error = 0;
@ -313,7 +323,7 @@ int main()
Error += test_compute_glm();
Error += test_compute_gtx();
Error += test_static_const();
float Det = glm::determinant(glm::simdMat4(1.0));
Error += Det == 1.0f ? 0 : 1;