Browse Source

Merge branch '0.9.2' into 0.9.3

Christophe Riccio 14 years ago
parent
commit
22e51711c1

+ 1 - 1
doc/gtxModules.doxy

@@ -452,7 +452,7 @@
 **/
 **/
 
 
 /*!
 /*!
-	\defgroup gtx_vector_access GLM_GTX_vector_angle: Vector access
+	\defgroup gtx_vector_access GLM_GTX_vector_access: Vector access
 	\ingroup gtx
 	\ingroup gtx
 	
 	
 	\brief Function to set values to vectors
 	\brief Function to set values to vectors

+ 1 - 1
glm/gtx/quaternion.inl

@@ -149,7 +149,7 @@ namespace quaternion
 		detail::tquat<T> const & x
 		detail::tquat<T> const & x
 	)
 	)
     {
     {
-        return acos(x.w) * T(2);
+        return glm::degrees(acos(x.w) * T(2));
     }
     }
 
 
     template <typename T> 
     template <typename T> 

+ 5 - 4
test/gtc/gtc_quaternion.cpp

@@ -23,11 +23,12 @@ int test_quat_slerp()
 {
 {
     int Error = 0;
     int Error = 0;
     
     
-    glm::quat A(0.0f, glm::vec3(0, 0, 1));
-    glm::quat B(90.0f, glm::vec3(0, 0, 1));
+    glm::quat A(glm::vec3(0, 0, 1));
+    glm::quat B(glm::vec3(0, 1, 0));
     glm::quat C = glm::mix(A, B, 0.5f);
     glm::quat C = glm::mix(A, B, 0.5f);
-    
-    Error += C == glm::quat(45.f, glm::vec3(0, 0, 1)) ? 0 : 1;
+    glm::quat D(glm::normalize(glm::vec3(0, 1, 1)));
+
+    Error += C == D ? 0 : 1;
 
 
     return Error;
     return Error;
 }
 }

+ 30 - 16
test/gtc/gtc_type_ptr.cpp

@@ -2,7 +2,7 @@
 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // Created : 2010-09-16
 // Created : 2010-09-16
-// Updated : 2010-09-16
+// Updated : 2011-05-27
 // Licence : This source is under MIT licence
 // Licence : This source is under MIT licence
 // File    : test/gtc/type_ptr.cpp
 // File    : test/gtc/type_ptr.cpp
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -11,8 +11,31 @@
 #include <glm/glm.hpp>
 #include <glm/glm.hpp>
 #include <glm/gtc/type_ptr.hpp>
 #include <glm/gtc/type_ptr.hpp>
 
 
-bool test_make_pointer()
+int test_make_pointer_mat()
 {
 {
+    int Error = 0;
+
+    float ArrayA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+    int ArrayB[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+    bool ArrayC[] = {true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false};
+    
+    glm::mat2x2 Mat2x2A = glm::make_mat2x2(ArrayA);
+    glm::mat2x3 Mat2x3A = glm::make_mat2x3(ArrayA);
+    glm::mat2x4 Mat2x4A = glm::make_mat2x4(ArrayA);
+    glm::mat3x2 Mat3x2A = glm::make_mat3x2(ArrayA);
+    glm::mat3x3 Mat3x3A = glm::make_mat3x3(ArrayA);
+    glm::mat3x4 Mat3x4A = glm::make_mat3x4(ArrayA);
+    glm::mat4x2 Mat4x2A = glm::make_mat4x2(ArrayA);
+    glm::mat4x3 Mat4x3A = glm::make_mat4x3(ArrayA);
+    glm::mat4x4 Mat4x4A = glm::make_mat4x4(ArrayA);
+    
+    return Error;
+}
+
+int test_make_pointer_vec()
+{
+    int Error = 0;
+    
     float ArrayA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
     float ArrayA[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
     int ArrayB[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
     int ArrayB[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
     bool ArrayC[] = {true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false};
     bool ArrayC[] = {true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false};
@@ -29,24 +52,15 @@ bool test_make_pointer()
     glm::bvec3 Vec3C = glm::make_vec3(ArrayC);
     glm::bvec3 Vec3C = glm::make_vec3(ArrayC);
     glm::bvec4 Vec4C = glm::make_vec4(ArrayC);
     glm::bvec4 Vec4C = glm::make_vec4(ArrayC);
     
     
-    glm::mat2x2 Mat2x2A = glm::make_mat2x2(ArrayA);
-    glm::mat2x3 Mat2x3A = glm::make_mat2x3(ArrayA);
-    glm::mat2x4 Mat2x4A = glm::make_mat2x4(ArrayA);
-    glm::mat3x2 Mat3x2A = glm::make_mat3x2(ArrayA);
-    glm::mat3x3 Mat3x3A = glm::make_mat3x3(ArrayA);
-    glm::mat3x4 Mat3x4A = glm::make_mat3x4(ArrayA);
-    glm::mat4x2 Mat4x2A = glm::make_mat4x2(ArrayA);
-    glm::mat4x3 Mat4x3A = glm::make_mat4x3(ArrayA);
-    glm::mat4x4 Mat4x4A = glm::make_mat4x4(ArrayA);
-    
-    return true;
+    return Error;
 }
 }
 
 
 int main()
 int main()
 {
 {
-	int Failed = 0;
+	int Error = 0;
     
     
-    Failed += test_make_pointer() ? 0 : 1;
+    Error += test_make_pointer_vec();
+    Error += test_make_pointer_mat();
 
 
-	return Failed;
+	return Error;
 }
 }

+ 24 - 6
test/gtx/gtx_quaternion.cpp

@@ -11,31 +11,48 @@
 #include <glm/gtx/quaternion.hpp>
 #include <glm/gtx/quaternion.hpp>
 #include <glm/gtx/epsilon.hpp>
 #include <glm/gtx/epsilon.hpp>
 
 
+int test_quat_angleAxis()
+{
+	int Error = 0;
+
+	glm::quat A = glm::angleAxis(0.0f, glm::vec3(0, 0, 1));
+	glm::quat B = glm::angleAxis(90.0f, glm::vec3(0, 0, 1));
+    glm::quat C = glm::mix(A, B, 0.5f);
+    glm::quat D = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
+
+    Error += glm::equalEpsilon(C.x, D.x, 0.01f) ? 0 : 1;
+	Error += glm::equalEpsilon(C.y, D.y, 0.01f) ? 0 : 1;
+	Error += glm::equalEpsilon(C.z, D.z, 0.01f) ? 0 : 1;
+	Error += glm::equalEpsilon(C.w, D.w, 0.01f) ? 0 : 1;
+
+	return Error;
+}
+
 int test_quat_angle()
 int test_quat_angle()
 {
 {
     int Error = 0;
     int Error = 0;
     
     
     {
     {
-        glm::quat Q(45.0f, glm::vec3(0, 0, 1));
+        glm::quat Q = glm::angleAxis(45.0f, glm::vec3(0, 0, 1));
         glm::quat N = glm::normalize(Q);
         glm::quat N = glm::normalize(Q);
         float L = glm::length(N);
         float L = glm::length(N);
-        Error += L == 1.0f ? 0 : 1;
+        Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
         float A = glm::angle(N);
         float A = glm::angle(N);
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
     }
     }
     {
     {
-        glm::quat Q(45.0f, glm::vec3(0, 0, 2));
+        glm::quat Q = glm::angleAxis(45.0f, glm::normalize(glm::vec3(0, 1, 1)));
         glm::quat N = glm::normalize(Q);
         glm::quat N = glm::normalize(Q);
         float L = glm::length(N);
         float L = glm::length(N);
-        Error += L == 1.0f ? 0 : 1;
+        Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
         float A = glm::angle(N);
         float A = glm::angle(N);
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
     }
     }
     {
     {
-        glm::quat Q(45.0f, glm::vec3(1, 2, 3));
+        glm::quat Q = glm::angleAxis(45.0f, glm::normalize(glm::vec3(1, 2, 3)));
         glm::quat N = glm::normalize(Q);
         glm::quat N = glm::normalize(Q);
         float L = glm::length(N);
         float L = glm::length(N);
-        Error += L == 1.0f ? 0 : 1;
+        Error += glm::equalEpsilon(L, 1.0f, 0.01f) ? 0 : 1;
         float A = glm::angle(N);
         float A = glm::angle(N);
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
         Error += glm::equalEpsilon(A, 45.0f, 0.01f) ? 0 : 1;
     }
     }
@@ -48,6 +65,7 @@ int main()
 	int Error = 0;
 	int Error = 0;
     
     
     Error += test_quat_angle();
     Error += test_quat_angle();
+	Error += test_quat_angleAxis();
 
 
 	return Error;
 	return Error;
 }
 }