diff --git a/glm/detail/type_mat2x2.hpp b/glm/detail/type_mat2x2.hpp index d51389b13..e7fde26f5 100644 --- a/glm/detail/type_mat2x2.hpp +++ b/glm/detail/type_mat2x2.hpp @@ -69,7 +69,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 2;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl index 92940eff9..02c5ee8b5 100644 --- a/glm/detail/type_mat2x2.inl +++ b/glm/detail/type_mat2x2.inl @@ -154,12 +154,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2::length_type tmat2x2::length() const - { - return 2; - } - template GLM_FUNC_QUALIFIER typename tmat2x2::col_type & tmat2x2::operator[](typename tmat2x2::length_type i) { diff --git a/glm/detail/type_mat2x3.hpp b/glm/detail/type_mat2x3.hpp index 0b48727a8..db558863b 100644 --- a/glm/detail/type_mat2x3.hpp +++ b/glm/detail/type_mat2x3.hpp @@ -70,7 +70,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 2;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl index 8b13f8ba3..b0f8337cf 100644 --- a/glm/detail/type_mat2x3.inl +++ b/glm/detail/type_mat2x3.inl @@ -154,12 +154,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3::length_type tmat2x3::length() const - { - return 2; - } - template GLM_FUNC_QUALIFIER typename tmat2x3::col_type & tmat2x3::operator[](typename tmat2x3::length_type i) { diff --git a/glm/detail/type_mat2x4.hpp b/glm/detail/type_mat2x4.hpp index 741968e39..c9d195f75 100644 --- a/glm/detail/type_mat2x4.hpp +++ b/glm/detail/type_mat2x4.hpp @@ -72,7 +72,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 2;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl index 47fd9fad1..74af34c65 100644 --- a/glm/detail/type_mat2x4.inl +++ b/glm/detail/type_mat2x4.inl @@ -155,12 +155,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4::length_type tmat2x4::length() const - { - return 2; - } - template GLM_FUNC_QUALIFIER typename tmat2x4::col_type & tmat2x4::operator[](typename tmat2x4::length_type i) { diff --git a/glm/detail/type_mat3x2.hpp b/glm/detail/type_mat3x2.hpp index 5d20fd8ef..8549745e3 100644 --- a/glm/detail/type_mat3x2.hpp +++ b/glm/detail/type_mat3x2.hpp @@ -77,7 +77,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 3;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl index af0c768af..2a1b8bd6d 100644 --- a/glm/detail/type_mat3x2.inl +++ b/glm/detail/type_mat3x2.inl @@ -184,12 +184,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2::length_type tmat3x2::length() const - { - return 3; - } - template GLM_FUNC_QUALIFIER typename tmat3x2::col_type & tmat3x2::operator[](typename tmat3x2::length_type i) { diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp index 25e3a49a0..d5ebe6291 100644 --- a/glm/detail/type_mat3x3.hpp +++ b/glm/detail/type_mat3x3.hpp @@ -76,7 +76,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 3;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl index aec8e1966..324cca32e 100644 --- a/glm/detail/type_mat3x3.inl +++ b/glm/detail/type_mat3x3.inl @@ -186,12 +186,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3::length_type tmat3x3::length() const - { - return 3; - } - template GLM_FUNC_QUALIFIER typename tmat3x3::col_type & tmat3x3::operator[](typename tmat3x3::length_type i) { diff --git a/glm/detail/type_mat3x4.hpp b/glm/detail/type_mat3x4.hpp index 76e716946..c5bb9a9b8 100644 --- a/glm/detail/type_mat3x4.hpp +++ b/glm/detail/type_mat3x4.hpp @@ -77,7 +77,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 3;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl index 7f55e9a5b..3596f2670 100644 --- a/glm/detail/type_mat3x4.inl +++ b/glm/detail/type_mat3x4.inl @@ -184,12 +184,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4::length_type tmat3x4::length() const - { - return 3; - } - template GLM_FUNC_QUALIFIER typename tmat3x4::col_type & tmat3x4::operator[](typename tmat3x4::length_type i) { diff --git a/glm/detail/type_mat4x2.hpp b/glm/detail/type_mat4x2.hpp index 53a5d078f..a899d943c 100644 --- a/glm/detail/type_mat4x2.hpp +++ b/glm/detail/type_mat4x2.hpp @@ -82,7 +82,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 4;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl index cbf1b348a..6d83229c2 100644 --- a/glm/detail/type_mat4x2.inl +++ b/glm/detail/type_mat4x2.inl @@ -213,12 +213,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2::length_type tmat4x2::length() const - { - return 4; - } - template GLM_FUNC_QUALIFIER typename tmat4x2::col_type & tmat4x2::operator[](typename tmat4x2::length_type i) { diff --git a/glm/detail/type_mat4x3.hpp b/glm/detail/type_mat4x3.hpp index 15c328e60..c696735f1 100644 --- a/glm/detail/type_mat4x3.hpp +++ b/glm/detail/type_mat4x3.hpp @@ -82,7 +82,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 4;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl index 2aa8289ce..cfb408b3b 100644 --- a/glm/detail/type_mat4x3.inl +++ b/glm/detail/type_mat4x3.inl @@ -206,12 +206,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3::length_type tmat4x3::length() const - { - return 4; - } - template GLM_FUNC_QUALIFIER typename tmat4x3::col_type & tmat4x3::operator[](typename tmat4x3::length_type i) { diff --git a/glm/detail/type_mat4x4.hpp b/glm/detail/type_mat4x4.hpp index d0043944b..2222d10e3 100644 --- a/glm/detail/type_mat4x4.hpp +++ b/glm/detail/type_mat4x4.hpp @@ -81,7 +81,7 @@ namespace glm // -- Accesses -- typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 4;} GLM_FUNC_DECL col_type & operator[](length_type i); GLM_FUNC_DECL col_type const & operator[](length_type i) const; diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 81b275038..9fc572ea2 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -236,12 +236,6 @@ namespace glm // -- Accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4::length_type tmat4x4::length() const - { - return 4; - } - template GLM_FUNC_QUALIFIER typename tmat4x4::col_type & tmat4x4::operator[](typename tmat4x4::length_type i) { diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp index dd673a7ca..0d54ae003 100644 --- a/glm/detail/type_vec1.hpp +++ b/glm/detail/type_vec1.hpp @@ -75,7 +75,7 @@ namespace glm /// Return the count of components of the vector typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 1;} GLM_FUNC_DECL T & operator[](length_type i); GLM_FUNC_DECL T const & operator[](length_type i) const; diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl index 56f6b25bb..3c8729589 100644 --- a/glm/detail/type_vec1.inl +++ b/glm/detail/type_vec1.inl @@ -66,12 +66,6 @@ namespace glm // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1::length_type tvec1::length() const - { - return 1; - } - template GLM_FUNC_QUALIFIER T & tvec1::operator[](typename tvec1::length_type i) { diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp index 9a9ef42d7..d7f7c2133 100644 --- a/glm/detail/type_vec2.hpp +++ b/glm/detail/type_vec2.hpp @@ -76,7 +76,7 @@ namespace glm /// Return the count of components of the vector typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 2;} GLM_FUNC_DECL T & operator[](length_type i); GLM_FUNC_DECL T const & operator[](length_type i) const; diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl index d10f96e6a..ae3725417 100644 --- a/glm/detail/type_vec2.inl +++ b/glm/detail/type_vec2.inl @@ -97,12 +97,6 @@ namespace glm // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2::length_type tvec2::length() const - { - return 2; - } - template GLM_FUNC_QUALIFIER T & tvec2::operator[](typename tvec2::length_type i) { diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp index ebd135d62..4fcb96431 100644 --- a/glm/detail/type_vec3.hpp +++ b/glm/detail/type_vec3.hpp @@ -76,7 +76,7 @@ namespace glm /// Return the count of components of the vector typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 3;} GLM_FUNC_DECL T & operator[](length_type i); GLM_FUNC_DECL T const & operator[](length_type i) const; diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl index cc0424fb0..df9b2ad7f 100644 --- a/glm/detail/type_vec3.inl +++ b/glm/detail/type_vec3.inl @@ -139,12 +139,6 @@ namespace glm // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3::length_type tvec3::length() const - { - return 3; - } - template GLM_FUNC_QUALIFIER T & tvec3::operator[](typename tvec3::length_type i) { diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp index 12eedd838..c3923b4a2 100644 --- a/glm/detail/type_vec4.hpp +++ b/glm/detail/type_vec4.hpp @@ -79,7 +79,7 @@ namespace glm /// Return the count of components of the vector typedef length_t length_type; - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 4;} GLM_FUNC_DECL T & operator[](length_type i); GLM_FUNC_DECL T const & operator[](length_type i) const; diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl index 6b4532ad4..2377e2b11 100644 --- a/glm/detail/type_vec4.inl +++ b/glm/detail/type_vec4.inl @@ -324,12 +324,6 @@ namespace detail // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4::length_type tvec4::length() const - { - return 4; - } - template GLM_FUNC_QUALIFIER T & tvec4::operator[](typename tvec4::length_type i) { diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp index 72d060377..8af1c8bfe 100644 --- a/glm/gtc/quaternion.hpp +++ b/glm/gtc/quaternion.hpp @@ -71,7 +71,7 @@ namespace glm typedef length_t length_type; /// Return the count of components of a quaternion - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 4;} GLM_FUNC_DECL T & operator[](length_type i); GLM_FUNC_DECL T const & operator[](length_type i) const; diff --git a/glm/gtc/quaternion.inl b/glm/gtc/quaternion.inl index f062b0a63..c9b2af73f 100644 --- a/glm/gtc/quaternion.inl +++ b/glm/gtc/quaternion.inl @@ -67,12 +67,6 @@ namespace detail // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat::length_type tquat::length() const - { - return 4; - } - template GLM_FUNC_QUALIFIER T & tquat::operator[](typename tquat::length_type i) { diff --git a/glm/gtc/random.inl b/glm/gtc/random.inl index 7dc5e8362..ad5926ee3 100644 --- a/glm/gtc/random.inl +++ b/glm/gtc/random.inl @@ -154,7 +154,7 @@ namespace detail return (compute_rand::call() % (Max + static_cast(1) - Min)) + Min; } }; - + template class vecType> struct compute_linearRand { diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp index a64c7df76..4d7b61e38 100644 --- a/glm/gtx/dual_quaternion.hpp +++ b/glm/gtx/dual_quaternion.hpp @@ -46,7 +46,7 @@ namespace glm typedef length_t length_type; /// Return the count of components of a dual quaternion - GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const; + GLM_FUNC_DECL static length_type length(){return 2;} GLM_FUNC_DECL part_type & operator[](length_type i); GLM_FUNC_DECL part_type const & operator[](length_type i) const; diff --git a/glm/gtx/dual_quaternion.inl b/glm/gtx/dual_quaternion.inl index c93c96912..c3f2bc620 100644 --- a/glm/gtx/dual_quaternion.inl +++ b/glm/gtx/dual_quaternion.inl @@ -8,12 +8,6 @@ namespace glm { // -- Component accesses -- - template - GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat::length_type tdualquat::length() const - { - return 2; - } - template GLM_FUNC_QUALIFIER typename tdualquat::part_type & tdualquat::operator[](typename tdualquat::length_type i) { diff --git a/readme.md b/readme.md index 77934e6d9..56fad6b58 100644 --- a/readme.md +++ b/readme.md @@ -70,13 +70,14 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) - Removed GLM_DEPTH_ZERO_TO_ONE, use GLM_FORCE_DEPTH_ZERO_TO_ONE instead - Removed GLM_LEFT_HANDED, use GLM_FORCE_LEFT_HANDED instead -#### [GLM 0.9.8.2](https://github.com/g-truc/glm/tree/0.9.8) - 2016-XX-XX +#### [GLM 0.9.8.2](https://github.com/g-truc/glm/releases/tag/0.9.8.2) - 2016-11-01 ##### Improvements: - Added Visual C++ 15 detection - Added Clang 4.0 detection - Added warning messages when using GLM_FORCE_CXX** but the compiler is known to not fully support the requested C++ version #555 - Refactored GLM_COMPILER_VC values +- Made quat, vec, mat type component length() static #565 ##### Fixes: - Fixed Visual C++ constexpr build error #555, #556 diff --git a/test/core/core_func_noise.cpp b/test/core/core_func_noise.cpp index 41db681f0..2bbf3fb3d 100644 --- a/test/core/core_func_noise.cpp +++ b/test/core/core_func_noise.cpp @@ -1,7 +1,22 @@ +struct vec4 +{ + static int length(); +}; + +int vec4::length() +{ + return 4; +} + int main() { int Failed = 0; - + + vec4 V; + + int LengthA = V.length(); + int LengthB = vec4::length(); + return Failed; } diff --git a/test/core/core_type_mat2x2.cpp b/test/core/core_type_mat2x2.cpp index 78c0e8d20..72f5469ab 100644 --- a/test/core/core_type_mat2x2.cpp +++ b/test/core/core_type_mat2x2.cpp @@ -132,6 +132,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 16 == sizeof(glm::mat2x2) ? 0 : 1; + Error += 32 == sizeof(glm::dmat2x2) ? 0 : 1; + Error += glm::mat2x2().length() == 2 ? 0 : 1; + Error += glm::dmat2x2().length() == 2 ? 0 : 1; + Error += glm::mat2x2::length() == 2 ? 0 : 1; + Error += glm::dmat2x2::length() == 2 ? 0 : 1; + + return Error; +} + int main() { int Error(0); @@ -140,6 +154,7 @@ int main() Error += test_ctr(); Error += test_operators(); Error += test_inverse(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat2x3.cpp b/test/core/core_type_mat2x3.cpp index 36e4a5945..bb6612cfd 100644 --- a/test/core/core_type_mat2x3.cpp +++ b/test/core/core_type_mat2x3.cpp @@ -106,6 +106,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 24 == sizeof(glm::mat2x3) ? 0 : 1; + Error += 48 == sizeof(glm::dmat2x3) ? 0 : 1; + Error += glm::mat2x3().length() == 2 ? 0 : 1; + Error += glm::dmat2x3().length() == 2 ? 0 : 1; + Error += glm::mat2x3::length() == 2 ? 0 : 1; + Error += glm::dmat2x3::length() == 2 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -113,6 +127,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat2x4.cpp b/test/core/core_type_mat2x4.cpp index d2435f8d7..5793b2ccc 100644 --- a/test/core/core_type_mat2x4.cpp +++ b/test/core/core_type_mat2x4.cpp @@ -106,6 +106,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 32 == sizeof(glm::mat2x4) ? 0 : 1; + Error += 64 == sizeof(glm::dmat2x4) ? 0 : 1; + Error += glm::mat2x4().length() == 2 ? 0 : 1; + Error += glm::dmat2x4().length() == 2 ? 0 : 1; + Error += glm::mat2x4::length() == 2 ? 0 : 1; + Error += glm::dmat2x4::length() == 2 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -113,6 +127,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat3x2.cpp b/test/core/core_type_mat3x2.cpp index fdfa2083b..449f5773d 100644 --- a/test/core/core_type_mat3x2.cpp +++ b/test/core/core_type_mat3x2.cpp @@ -110,6 +110,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 24 == sizeof(glm::mat3x2) ? 0 : 1; + Error += 48 == sizeof(glm::dmat3x2) ? 0 : 1; + Error += glm::mat3x2().length() == 3 ? 0 : 1; + Error += glm::dmat3x2().length() == 3 ? 0 : 1; + Error += glm::mat3x2::length() == 3 ? 0 : 1; + Error += glm::dmat3x2::length() == 3 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -117,6 +131,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat3x3.cpp b/test/core/core_type_mat3x3.cpp index c8886a559..fa54cefef 100644 --- a/test/core/core_type_mat3x3.cpp +++ b/test/core/core_type_mat3x3.cpp @@ -169,6 +169,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 36 == sizeof(glm::mat3x3) ? 0 : 1; + Error += 72 == sizeof(glm::dmat3x3) ? 0 : 1; + Error += glm::mat3x3().length() == 3 ? 0 : 1; + Error += glm::dmat3x3().length() == 3 ? 0 : 1; + Error += glm::mat3x3::length() == 3 ? 0 : 1; + Error += glm::dmat3x3::length() == 3 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -178,6 +192,7 @@ int main() Error += test_mat3x3(); Error += test_operators(); Error += test_inverse(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat3x4.cpp b/test/core/core_type_mat3x4.cpp index 131f6862c..112e10a5f 100644 --- a/test/core/core_type_mat3x4.cpp +++ b/test/core/core_type_mat3x4.cpp @@ -110,6 +110,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 48 == sizeof(glm::mat3x4) ? 0 : 1; + Error += 96 == sizeof(glm::dmat3x4) ? 0 : 1; + Error += glm::mat3x4().length() == 3 ? 0 : 1; + Error += glm::dmat3x4().length() == 3 ? 0 : 1; + Error += glm::mat3x4::length() == 3 ? 0 : 1; + Error += glm::dmat3x4::length() == 3 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -117,6 +131,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat4x2.cpp b/test/core/core_type_mat4x2.cpp index eecdf1c71..247b041fc 100644 --- a/test/core/core_type_mat4x2.cpp +++ b/test/core/core_type_mat4x2.cpp @@ -114,6 +114,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 32 == sizeof(glm::mat4x2) ? 0 : 1; + Error += 64 == sizeof(glm::dmat4x2) ? 0 : 1; + Error += glm::mat4x2().length() == 4 ? 0 : 1; + Error += glm::dmat4x2().length() == 4 ? 0 : 1; + Error += glm::mat4x2::length() == 4 ? 0 : 1; + Error += glm::dmat4x2::length() == 4 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -121,6 +135,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat4x3.cpp b/test/core/core_type_mat4x3.cpp index 309a86b42..6700aae3f 100644 --- a/test/core/core_type_mat4x3.cpp +++ b/test/core/core_type_mat4x3.cpp @@ -114,6 +114,20 @@ namespace cast } }//namespace cast +int test_size() +{ + int Error = 0; + + Error += 48 == sizeof(glm::mat4x3) ? 0 : 1; + Error += 96 == sizeof(glm::dmat4x3) ? 0 : 1; + Error += glm::mat4x3().length() == 4 ? 0 : 1; + Error += glm::dmat4x3().length() == 4 ? 0 : 1; + Error += glm::mat4x3::length() == 4 ? 0 : 1; + Error += glm::dmat4x3::length() == 4 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -121,6 +135,7 @@ int main() Error += cast::test(); Error += test_ctr(); Error += test_operators(); + Error += test_size(); return Error; } diff --git a/test/core/core_type_mat4x4.cpp b/test/core/core_type_mat4x4.cpp index 94cc3ace0..0adaef713 100644 --- a/test/core/core_type_mat4x4.cpp +++ b/test/core/core_type_mat4x4.cpp @@ -294,6 +294,20 @@ struct repro glm::mat4* matrix; }; +int test_size() +{ + int Error = 0; + + Error += 64 == sizeof(glm::mat4) ? 0 : 1; + Error += 128 == sizeof(glm::dmat4) ? 0 : 1; + Error += glm::mat4().length() == 4 ? 0 : 1; + Error += glm::dmat4().length() == 4 ? 0 : 1; + Error += glm::mat4::length() == 4 ? 0 : 1; + Error += glm::dmat4::length() == 4 ? 0 : 1; + + return Error; +} + int main() { int Error = 0; @@ -306,6 +320,7 @@ int main() Error += test_inverse_mat4x4(); Error += test_operators(); Error += test_inverse(); + Error += test_size(); Error += perf_mul(); diff --git a/test/core/core_type_vec1.cpp b/test/core/core_type_vec1.cpp index 9177e3802..b03057aa1 100644 --- a/test/core/core_type_vec1.cpp +++ b/test/core/core_type_vec1.cpp @@ -93,14 +93,16 @@ int test_vec1_ctor() int test_vec1_size() { int Error = 0; - + Error += sizeof(glm::vec1) == sizeof(glm::mediump_vec1) ? 0 : 1; Error += 4 == sizeof(glm::mediump_vec1) ? 0 : 1; Error += sizeof(glm::dvec1) == sizeof(glm::highp_dvec1) ? 0 : 1; Error += 8 == sizeof(glm::highp_dvec1) ? 0 : 1; Error += glm::vec1().length() == 1 ? 0 : 1; Error += glm::dvec1().length() == 1 ? 0 : 1; - + Error += glm::vec1::length() == 1 ? 0 : 1; + Error += glm::dvec1::length() == 1 ? 0 : 1; + return Error; } diff --git a/test/core/core_type_vec2.cpp b/test/core/core_type_vec2.cpp index af7997af7..97c7f9b12 100644 --- a/test/core/core_type_vec2.cpp +++ b/test/core/core_type_vec2.cpp @@ -265,6 +265,8 @@ int test_vec2_size() Error += 16 == sizeof(glm::highp_dvec2) ? 0 : 1; Error += glm::vec2().length() == 2 ? 0 : 1; Error += glm::dvec2().length() == 2 ? 0 : 1; + Error += glm::vec2::length() == 2 ? 0 : 1; + Error += glm::dvec2::length() == 2 ? 0 : 1; return Error; } diff --git a/test/core/core_type_vec3.cpp b/test/core/core_type_vec3.cpp index e6b894c7a..c9370c17a 100644 --- a/test/core/core_type_vec3.cpp +++ b/test/core/core_type_vec3.cpp @@ -239,6 +239,9 @@ int test_vec3_size() Error += 24 == sizeof(glm::highp_dvec3) ? 0 : 1; Error += glm::vec3().length() == 3 ? 0 : 1; Error += glm::dvec3().length() == 3 ? 0 : 1; + Error += glm::vec3::length() == 3 ? 0 : 1; + Error += glm::dvec3::length() == 3 ? 0 : 1; + return Error; } diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp index 86e302c7e..9ada88780 100644 --- a/test/core/core_type_vec4.cpp +++ b/test/core/core_type_vec4.cpp @@ -315,6 +315,8 @@ int test_vec4_size() Error += 32 == sizeof(glm::highp_dvec4) ? 0 : 1; Error += glm::vec4().length() == 4 ? 0 : 1; Error += glm::dvec4().length() == 4 ? 0 : 1; + Error += glm::vec4::length() == 4 ? 0 : 1; + Error += glm::dvec4::length() == 4 ? 0 : 1; return Error; } diff --git a/test/gtc/gtc_quaternion.cpp b/test/gtc/gtc_quaternion.cpp index 49ac157b5..db410fc43 100644 --- a/test/gtc/gtc_quaternion.cpp +++ b/test/gtc/gtc_quaternion.cpp @@ -291,9 +291,23 @@ int test_quat_ctr() return Error; } +int test_size() +{ + int Error = 0; + + Error += 16 == sizeof(glm::quat) ? 0 : 1; + Error += 32 == sizeof(glm::dquat) ? 0 : 1; + Error += glm::quat().length() == 4 ? 0 : 1; + Error += glm::dquat().length() == 4 ? 0 : 1; + Error += glm::quat::length() == 4 ? 0 : 1; + Error += glm::dquat::length() == 4 ? 0 : 1; + + return Error; +} + int main() { - int Error(0); + int Error = 0; Error += test_quat_ctr(); Error += test_quat_mul_vec(); @@ -307,6 +321,7 @@ int main() Error += test_quat_normalize(); Error += test_quat_euler(); Error += test_quat_slerp(); + Error += test_size(); return Error; } diff --git a/test/gtx/gtx_dual_quaternion.cpp b/test/gtx/gtx_dual_quaternion.cpp index b06bba359..73d400f00 100644 --- a/test/gtx/gtx_dual_quaternion.cpp +++ b/test/gtx/gtx_dual_quaternion.cpp @@ -174,15 +174,30 @@ int test_dual_quat_ctr() return Error; } +int test_size() +{ + int Error = 0; + + Error += 32 == sizeof(glm::dualquat) ? 0 : 1; + Error += 64 == sizeof(glm::ddualquat) ? 0 : 1; + Error += glm::dualquat().length() == 2 ? 0 : 1; + Error += glm::ddualquat().length() == 2 ? 0 : 1; + Error += glm::dualquat::length() == 2 ? 0 : 1; + Error += glm::ddualquat::length() == 2 ? 0 : 1; + + return Error; +} + int main() { - int Error(0); + int Error = 0; Error += test_dual_quat_ctr(); Error += test_dquat_type(); Error += test_scalars(); Error += test_inverse(); Error += test_mul(); + Error += test_size(); return Error; } diff --git a/test/gtx/gtx_quaternion.cpp b/test/gtx/gtx_quaternion.cpp index d3938fb17..12e12b2a3 100644 --- a/test/gtx/gtx_quaternion.cpp +++ b/test/gtx/gtx_quaternion.cpp @@ -91,7 +91,7 @@ int test_log() int main() { - int Error(0); + int Error = 0; Error += test_log(); Error += test_rotation();