diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp index 2dacbe81..3975ea7e 100644 --- a/glm/gtx/vector_angle.hpp +++ b/glm/gtx/vector_angle.hpp @@ -17,8 +17,9 @@ // Dependency: #include "../glm.hpp" -#include "../gtx/quaternion.hpp" #include "../gtx/epsilon.hpp" +#include "../gtx/quaternion.hpp" +#include "../gtx/rotate_vector.hpp" #if(defined(GLM_MESSAGES) && !defined(glm_ext)) # pragma message("GLM: GLM_GTX_vector_angle extension included") @@ -59,11 +60,11 @@ namespace glm //! Returns the orientation of a two vector base from a normal. //! Parameters need to be normalized. //! From GLM_GTX_vector_angle extension. - template - typename vecType::value_type orientedAngleFromRef( - vecType const & x, - vecType const & y, - detail::tvec3 const & ref); + template class vecType, typename T> + typename vecType orientedAngleFromRef( + vecType const & x, + vecType const & y, + detail::tvec3 const & ref); ///@} }//namespace vector_angle diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e2625f82..0d4acb92 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,6 @@ function(glmCreateTestGTC NAME) set(SAMPLE_NAME test-${NAME}) - add_executable(${SAMPLE_NAME} ${NAME}.cpp ../test.hpp ../test.cpp) + add_executable(${SAMPLE_NAME} ${NAME}.cpp) add_test( NAME ${SAMPLE_NAME} diff --git a/test/gtx/CMakeLists.txt b/test/gtx/CMakeLists.txt index 8479f0e6..941cfadc 100644 --- a/test/gtx/CMakeLists.txt +++ b/test/gtx/CMakeLists.txt @@ -1,5 +1,7 @@ -glmCreateTestGTC(gtx-bit) -glmCreateTestGTC(gtx-noise) -glmCreateTestGTC(gtx-simd-vec4) -glmCreateTestGTC(gtx-simd-mat4) -glmCreateTestGTC(gtx-ulp) +glmCreateTestGTC(gtx_bit) +glmCreateTestGTC(gtx_noise) +glmCreateTestGTC(gtx_simd_vec4) +glmCreateTestGTC(gtx_simd_mat4) +glmCreateTestGTC(gtx_ulp) +glmCreateTestGTC(gtx_vector_angle) + diff --git a/test/gtx/gtx-bit.cpp b/test/gtx/gtx_bit.cpp similarity index 100% rename from test/gtx/gtx-bit.cpp rename to test/gtx/gtx_bit.cpp diff --git a/test/gtx/gtx-noise.cpp b/test/gtx/gtx_noise.cpp similarity index 100% rename from test/gtx/gtx-noise.cpp rename to test/gtx/gtx_noise.cpp diff --git a/test/gtx/gtx-simd-mat4.cpp b/test/gtx/gtx_simd_mat4.cpp similarity index 100% rename from test/gtx/gtx-simd-mat4.cpp rename to test/gtx/gtx_simd_mat4.cpp diff --git a/test/gtx/gtx-simd-vec4.cpp b/test/gtx/gtx_simd_vec4.cpp similarity index 100% rename from test/gtx/gtx-simd-vec4.cpp rename to test/gtx/gtx_simd_vec4.cpp diff --git a/test/gtx/gtx-ulp.cpp b/test/gtx/gtx_ulp.cpp similarity index 100% rename from test/gtx/gtx-ulp.cpp rename to test/gtx/gtx_ulp.cpp diff --git a/test/gtx/gtx_vector_angle.cpp b/test/gtx/gtx_vector_angle.cpp new file mode 100644 index 00000000..0b63af81 --- /dev/null +++ b/test/gtx/gtx_vector_angle.cpp @@ -0,0 +1,58 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Created : 2011-05-15 +// Updated : 2011-05-15 +// Licence : This source is under MIT licence +// File : test/gtx/vector_angle.cpp +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +int test_vector_angle_calls() +{ + int Error = 0; + + float AngleA = glm::angle(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0)); + float AngleB = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1))); + float AngleC = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1))); + float AngleD = glm::orientedAngleFromRef(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0), glm::vec3(0, 0, 1)); + + return Error; +} + +int test_vector_angle_orientedAngle() +{ + int Error = 0; + + float AngleA = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1))); + Error += AngleA == 45.f ? 0 : 1; + float AngleB = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1))); + Error += AngleB == -45.f ? 0 : 1; + + float AngleC = glm::orientedAngle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0))); + Error += AngleC == 45.f ? 0 : 1; + float AngleD = glm::orientedAngle(glm::vec3(0, 1, 0), glm::normalize(glm::vec3(1, 1, 0))); + Error += AngleD == -45.f ? 0 : 1; + + float AngleE = glm::orientedAngle(glm::vec4(1, 0, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0))); + Error += AngleE == 45.f ? 0 : 1; + float AngleF = glm::orientedAngle(glm::vec4(0, 1, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0))); + Error += AngleF == -45.f ? 0 : 1; + + return Error; +} + +int main() +{ + int Error = 0; + Error += test_vector_angle_orientedAngle(); + Error += test_vector_angle_calls(); + + return Error; +} + + diff --git a/test/test.cpp b/test/test.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/test/test.hpp b/test/test.hpp deleted file mode 100644 index 815bba7e..00000000 --- a/test/test.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef glm_test_included -#define glm_test_included - -#include - -namespace glm{ -namespace test -{ - class test - { - enum result - { - PASSED, - FAILED, - ASSERT, - STATIC, - MAX - }; - - public: - test(std::string const & Name, std::size_t const & Count); - result & operator[](std::size_t const & Index); - result const & operator[](std::size_t const & Index) const; - - static int get(result const Result) const; - static void log(test const & Test); - - protected: - std::string Name; - std::vertor Tests; - - static test Result[MAX]; - }; - -}//namespace test -}//namespace glm - -#endif//glm_test_included