diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index 943290bb..11783c4b 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -59,6 +59,8 @@ namespace glm static GLM_RELAXED_CONSTEXPR precision prec = P; # endif//GLM_META_PROG_HELPERS + static const type ZERO; + static const type X; // -- Data -- # if GLM_HAS_ANONYMOUS_UNION diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index 39485782..5a6c4d7a 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -32,6 +32,11 @@ namespace glm { + template + const tvec1 tvec1::X = tvec1(static_cast(1)); + + template + const tvec1 tvec1::ZERO = tvec1(static_cast(0)); // -- Implicit basic constructors -- # if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT) diff --git a/test/core/core_type_vec1.cpp b/test/core/core_type_vec1.cpp index 711a16a6..3a51be94 100644 --- a/test/core/core_type_vec1.cpp +++ b/test/core/core_type_vec1.cpp @@ -166,6 +166,18 @@ int test_vec1_operator_increment() return Error; } +int test_vec1_static_const() { + int Error = 0; + + Error += (glm::vec1(1.0f) == glm::vec1::X) ? 0 : 1; + Error += (glm::ivec1(1) == glm::ivec1::X) ? 0 : 1; + Error += (glm::dvec1(1.0) == glm::dvec1::X) ? 0 : 1; + Error += (glm::bvec1(false) == glm::bvec1::ZERO) ? 0 : 1; + Error += (glm::uvec1(0) == glm::uvec1::ZERO) ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -178,6 +190,7 @@ int main() assert(glm::vec1::components == 1); # endif + Error += test_vec1_static_const(); Error += test_vec1_size(); Error += test_vec1_ctor(); Error += test_vec1_operators();