Browse Source

Merge branch '0.9.2' into 0.9.3

Christophe Riccio 14 years ago
parent
commit
3863db233b

+ 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

+ 1 - 1
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}

+ 7 - 5
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)
+

+ 0 - 0
test/gtx/gtx-bit.cpp → test/gtx/gtx_bit.cpp


+ 0 - 0
test/gtx/gtx-noise.cpp → test/gtx/gtx_noise.cpp


+ 0 - 0
test/gtx/gtx-simd-mat4.cpp → test/gtx/gtx_simd_mat4.cpp


+ 0 - 0
test/gtx/gtx-simd-vec4.cpp → test/gtx/gtx_simd_vec4.cpp


+ 0 - 0
test/gtx/gtx-ulp.cpp → test/gtx/gtx_ulp.cpp


+ 58 - 0
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 <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 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;
+}
+
+

+ 0 - 0
test/test.cpp


+ 0 - 38
test/test.hpp

@@ -1,38 +0,0 @@
-#ifndef glm_test_included
-#define glm_test_included
-
-#include <string>
-
-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<result> Tests;
-
-		static test Result[MAX];
-	};
-
-}//namespace test
-}//namespace glm
-
-#endif//glm_test_included