| #define GLM_FORCE_NO_CTOR_INIT |
| #include <glm/glm.hpp> |
| #include <glm/gtc/vec1.hpp> |
| #include <glm/gtc/quaternion.hpp> |
| |
| int test_vec1_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::vec1 f; |
| glm::ivec1 i; |
| } A, B; |
| |
| A.f = glm::vec1(0); |
| Error += glm::all(glm::equal(A.i, glm::ivec1(0))) ? 0 : 1; |
| |
| B.f = glm::vec1(1); |
| Error += glm::all(glm::equal(B.i, glm::ivec1(1065353216))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_vec2_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::vec2 f; |
| glm::ivec2 i; |
| } A, B; |
| |
| A.f = glm::vec2(0); |
| Error += glm::all(glm::equal(A.i, glm::ivec2(0))) ? 0 : 1; |
| |
| B.f = glm::vec2(1); |
| Error += glm::all(glm::equal(B.i, glm::ivec2(1065353216))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_vec3_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::vec3 f; |
| glm::ivec3 i; |
| } A, B; |
| |
| A.f = glm::vec3(0); |
| Error += glm::all(glm::equal(A.i, glm::ivec3(0))) ? 0 : 1; |
| |
| B.f = glm::vec3(1); |
| Error += glm::all(glm::equal(B.i, glm::ivec3(1065353216))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_vec4_ctor() |
| { |
| int Error = 0; |
| |
| # ifndef GLM_FORCE_NO_CTOR_INIT |
| { |
| glm::vec4 A; |
| glm::vec4 B(0); |
| Error += glm::all(glm::equal(A, B)) ? 0 : 1; |
| } |
| # endif//GLM_FORCE_NO_CTOR_INIT |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::vec4 f; |
| glm::ivec4 i; |
| } A, B; |
| |
| A.f = glm::vec4(0); |
| Error += glm::all(glm::equal(A.i, glm::ivec4(0))) ? 0 : 1; |
| |
| B.f = glm::vec4(1); |
| Error += glm::all(glm::equal(B.i, glm::ivec4(1065353216))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat2x2_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat2x2 f; |
| glm::mat2x2 i; |
| } A, B; |
| |
| A.f = glm::mat2x2(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec2(0))) ? 0 : 1; |
| |
| B.f = glm::mat2x2(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec2(1, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat2x3_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat2x3 f; |
| glm::mat2x3 i; |
| } A, B; |
| |
| A.f = glm::mat2x3(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec3(0))) ? 0 : 1; |
| |
| B.f = glm::mat2x3(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec3(1, 0, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat2x4_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat2x4 f; |
| glm::mat2x4 i; |
| } A, B; |
| |
| A.f = glm::mat2x4(0); |
| glm::vec4 const C(0, 0, 0, 0); |
| Error += glm::all(glm::equal(A.i[0], C)) ? 0 : 1; |
| |
| B.f = glm::mat2x4(1); |
| glm::vec4 const D(1, 0, 0, 0); |
| Error += glm::all(glm::equal(B.i[0], D)) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat3x2_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat3x2 f; |
| glm::mat3x2 i; |
| } A, B; |
| |
| A.f = glm::mat3x2(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec2(0))) ? 0 : 1; |
| |
| B.f = glm::mat3x2(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec2(1, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat3x3_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat3x3 f; |
| glm::mat3x3 i; |
| } A, B; |
| |
| A.f = glm::mat3x3(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec3(0))) ? 0 : 1; |
| |
| B.f = glm::mat3x3(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec3(1, 0, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat3x4_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat3x4 f; |
| glm::mat3x4 i; |
| } A, B; |
| |
| A.f = glm::mat3x4(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec4(0))) ? 0 : 1; |
| |
| B.f = glm::mat3x4(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec4(1, 0, 0, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat4x2_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat4x2 f; |
| glm::mat4x2 i; |
| } A, B; |
| |
| A.f = glm::mat4x2(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec2(0))) ? 0 : 1; |
| |
| B.f = glm::mat4x2(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec2(1, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat4x3_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat4x3 f; |
| glm::mat4x3 i; |
| } A, B; |
| |
| A.f = glm::mat4x3(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec3(0))) ? 0 : 1; |
| |
| B.f = glm::mat4x3(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec3(1, 0, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_mat4x4_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS |
| { |
| union pack |
| { |
| glm::mat4 f; |
| glm::mat4 i; |
| } A, B; |
| |
| A.f = glm::mat4(0); |
| Error += glm::all(glm::equal(A.i[0], glm::vec4(0))) ? 0 : 1; |
| |
| B.f = glm::mat4(1); |
| Error += glm::all(glm::equal(B.i[0], glm::vec4(1, 0, 0, 0))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int test_quat_ctor() |
| { |
| int Error = 0; |
| |
| # if GLM_HAS_DEFAULTED_FUNCTIONS && defined(GLM_FORCE_NO_CTOR_INIT) |
| { |
| union pack |
| { |
| glm::quat f; |
| glm::quat i; |
| } A, B; |
| |
| A.f = glm::quat(0, 0, 0, 0); |
| Error += glm::all(glm::equal(A.i, glm::quat(0, 0, 0, 0))) ? 0 : 1; |
| |
| B.f = glm::quat(1, 1, 1, 1); |
| Error += glm::all(glm::equal(B.i, glm::quat(1, 1, 1, 1))) ? 0 : 1; |
| } |
| # endif//GLM_HAS_DEFAULTED_FUNCTIONS |
| |
| return Error; |
| } |
| |
| int main() |
| { |
| int Error = 0; |
| |
| Error += test_vec1_ctor(); |
| Error += test_vec2_ctor(); |
| Error += test_vec3_ctor(); |
| Error += test_vec4_ctor(); |
| Error += test_mat2x2_ctor(); |
| Error += test_mat2x3_ctor(); |
| Error += test_mat2x4_ctor(); |
| Error += test_mat3x2_ctor(); |
| Error += test_mat3x3_ctor(); |
| Error += test_mat3x4_ctor(); |
| Error += test_mat4x2_ctor(); |
| Error += test_mat4x3_ctor(); |
| Error += test_mat4x4_ctor(); |
| Error += test_quat_ctor(); |
| |
| return Error; |
| } |