Added 'angle' tests

master
Christophe Riccio ago%!(EXTRA string=14 years)
parent a1d4b1da22
commit 3d4b649bd5
  1. 6
      glm/gtx/vector_angle.hpp
  2. 22
      test/gtx/gtx_vector_angle.cpp

@ -40,7 +40,7 @@ namespace vector_angle
//! Parameters need to be normalized. //! Parameters need to be normalized.
//! From GLM_GTX_vector_angle extension //! From GLM_GTX_vector_angle extension
template <typename vecType> template <typename vecType>
typename vecType::value_type angle( GLM_FUNC_QUALIFIER typename vecType::value_type angle(
vecType const & x, vecType const & x,
vecType const & y); vecType const & y);
@ -48,7 +48,7 @@ namespace vector_angle
//! Parameters need to be normalized. //! Parameters need to be normalized.
//! From GLM_GTX_vector_angle extension. //! From GLM_GTX_vector_angle extension.
template <typename T> template <typename T>
typename T orientedAngle( GLM_FUNC_QUALIFIER T orientedAngle(
detail::tvec2<T> const & x, detail::tvec2<T> const & x,
detail::tvec2<T> const & y); detail::tvec2<T> const & y);
@ -56,7 +56,7 @@ namespace vector_angle
//! Parameters need to be normalized. //! Parameters need to be normalized.
//! From GLM_GTX_vector_angle extension. //! From GLM_GTX_vector_angle extension.
template <typename T> template <typename T>
typename vecType<T> orientedAngle( GLM_FUNC_QUALIFIER T orientedAngle(
detail::tvec3<T> const & x, detail::tvec3<T> const & x,
detail::tvec3<T> const & y, detail::tvec3<T> const & y,
detail::tvec3<T> const & ref); detail::tvec3<T> const & ref);

@ -12,16 +12,18 @@
#include <iostream> #include <iostream>
#include <limits> #include <limits>
int test_vector_angle_calls() int test_angle()
{ {
int Error = 0; int Error = 0;
float AngleA = glm::angle(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0)); float AngleA = glm::angle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
float AngleB = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1))); Error += glm::equalEpsilon(AngleA, 45.f, 0.01f) ? 0 : 1;
float AngleC = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1))); float AngleB = glm::angle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0)));
float AngleD = glm::orientedAngle(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0), glm::vec3(0, 0, 1)); Error += glm::equalEpsilon(AngleB, 45.f, 0.01f) ? 0 : 1;
float AngleC = glm::angle(glm::vec4(1, 0, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0)));
return Error; Error += glm::equalEpsilon(AngleC, 45.f, 0.01f) ? 0 : 1;
return Error;
} }
int test_orientedAngle_vec2() int test_orientedAngle_vec2()
@ -55,9 +57,9 @@ int test_orientedAngle_vec3()
int main() int main()
{ {
int Error = 0; int Error = 0;
Error += test_angle();
Error += test_orientedAngle_vec2(); Error += test_orientedAngle_vec2();
Error += test_orientedAngle_vec3(); Error += test_orientedAngle_vec3();
Error += test_vector_angle_calls();
return Error; return Error;
} }

Loading…
Cancel
Save