Selaa lähdekoodia

Merge branch '0.9.3' of github.com:Groovounet/glm into 0.9.3

Christophe Riccio 13 vuotta sitten
vanhempi
sitoutus
a2833dcb3c
5 muutettua tiedostoa jossa 25 lisäystä ja 16 poistoa
  1. 7 0
      glm/gtc/quaternion.hpp
  2. 15 0
      glm/gtc/quaternion.inl
  3. 0 6
      glm/gtx/quaternion.hpp
  4. 0 9
      glm/gtx/quaternion.inl
  5. 3 1
      test/gtx/gtx_simd_mat4.cpp

+ 7 - 0
glm/gtc/quaternion.hpp

@@ -204,6 +204,13 @@ namespace detail
 		typename detail::tquat<T>::value_type const & angle, 
 		detail::tvec3<T> const & v);
 
+	/// Returns euler angles, yitch as x, yaw as y, roll as z. 
+	/// 
+	/// @see gtc_quaternion
+	template <typename T> 
+	detail::tvec3<T> eulerAngles(
+        detail::tquat<T> const & x);
+    
 	/// Converts a quaternion to a 3 * 3 matrix. 
 	/// 
 	/// @see gtc_quaternion

+ 15 - 0
glm/gtc/quaternion.inl

@@ -31,6 +31,12 @@
 namespace glm{
 namespace detail
 {
+    template <typename T>
+    GLM_FUNC_QUALIFIER typename tquat<T>::size_type tquat<T>::length() const
+    {
+        return 4;
+    }
+
     template <typename T> 
     GLM_FUNC_QUALIFIER tquat<T>::tquat() : 
         x(0),
@@ -494,6 +500,15 @@ namespace detail
         //return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
 	}
 
+	template <typename T> 
+	GLM_FUNC_QUALIFIER detail::tvec3<T> eulerAngles
+	(
+        detail::tquat<T> const & x
+    )
+	{
+		return detail::tvec3<T>(pitch(x), yaw(x), roll(x));
+	}
+    
     template <typename T> 
     GLM_FUNC_QUALIFIER detail::tmat3x3<T> mat3_cast
 	(

+ 0 - 6
glm/gtx/quaternion.hpp

@@ -176,12 +176,6 @@ namespace glm
 	template <typename valType> 
 	valType yaw(
 		detail::tquat<valType> const & x);
-		
-	//! Returns euler angles, yitch as x, yaw as y, roll as z. 
-	//! From GLM_GTX_quaternion extension.
-	template <typename valType> 
-	detail::tvec3<valType> eulerAngles(
-		detail::tquat<valType> const & x);
 
 	//! Converts a quaternion to a 3 * 3 matrix. 
 	//! From GLM_GTX_quaternion extension.

+ 0 - 9
glm/gtx/quaternion.inl

@@ -234,15 +234,6 @@ namespace glm
 		return glm::degrees(asin(valType(-2) * (q.x * q.z - q.w * q.y)));
 	}
 
-	template <typename valType> 
-	GLM_FUNC_QUALIFIER detail::tvec3<valType> eulerAngles
-	(
-		detail::tquat<valType> const & x
-	)
-	{
-		return detail::tvec3<valType>(pitch(x), yaw(x), roll(x));
-	}
-
 	template <typename T>
 	GLM_FUNC_QUALIFIER detail::tquat<T> shortMix
 	(

+ 3 - 1
test/gtx/gtx_simd_mat4.cpp

@@ -181,7 +181,9 @@ void test_mulD(std::vector<glm::mat4> const & Data, std::vector<glm::mat4> & Out
 	{
 		_mm_prefetch((char*)&Data[i + 1], _MM_HINT_T0);
 		glm::simdMat4 m(Data[i]);
-		glm::detail::sse_mul_ps((__m128 const * const)&m, (__m128 const * const)&m, (__m128*)&Out[i]);
+		glm::simdMat4 o;
+		glm::detail::sse_mul_ps((__m128 const * const)&m, (__m128 const * const)&m, (__m128*)&o);
+		Out[i] = *(glm::mat4*)&o;
 	}
 
 	std::clock_t TimeEnd = clock();