Browse Source

Fixed vector angle build #90

Christophe Riccio 14 years ago
parent
commit
eb850c0fef
2 changed files with 42 additions and 6 deletions
  1. 7 6
      glm/gtx/vector_angle.hpp
  2. 35 0
      test/gtx/gtx_vector_angle.cpp

+ 7 - 6
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>
-		typename vecType::value_type orientedAngleFromRef(
-			vecType const & x,
-			vecType const & y,
-			detail::tvec3<typename vecType::value_type> const & ref);
+		template <template<typename> class vecType, typename T>
+		typename vecType<T> orientedAngleFromRef(
+			vecType<T> const & x,
+			vecType<T> const & y,
+			detail::tvec3<T> const & ref);
 
 		///@}
     }//namespace vector_angle

+ 35 - 0
test/gtx/gtx_vector_angle.cpp

@@ -0,0 +1,35 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// 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 <glm/glm.hpp>
+#include <glm/gtx/vector_angle.hpp>
+#include <iostream>
+#include <limits>
+
+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 main()
+{
+	int Error = 0;
+	Error += test_vector_angle_calls();
+
+	return Error;
+}
+
+