Browse Source

Added 'angle' tests

Christophe Riccio 14 years ago
parent
commit
3d4b649bd5
2 changed files with 15 additions and 13 deletions
  1. 3 3
      glm/gtx/vector_angle.hpp
  2. 12 10
      test/gtx/gtx_vector_angle.cpp

+ 3 - 3
glm/gtx/vector_angle.hpp

@@ -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 - 10
test/gtx/gtx_vector_angle.cpp

@@ -12,16 +12,18 @@
 #include <iostream>
 #include <iostream>
 #include <limits>
 #include <limits>
 
 
-int test_vector_angle_calls()
+int test_angle()
 {
 {
-	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::orientedAngle(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0), glm::vec3(0, 0, 1));
-
-	return Error;
+    int Error = 0;
+    
+	float AngleA = glm::angle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
+    Error += glm::equalEpsilon(AngleA, 45.f, 0.01f) ? 0 : 1;
+	float AngleB = glm::angle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0)));
+    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)));
+    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;
 }
 }