Browse Source

Merge pull request #1069 from Blurgyy/quaternion-sane-default

Fix constructor of struct qua to honor macro "GLM_FORCE_QUAT_DATA_WXYZ" #1069
Christophe 4 years ago
parent
commit
6e2b7eedd2
4 changed files with 32 additions and 32 deletions
  1. 6 6
      glm/detail/type_quat.hpp
  2. 24 24
      glm/detail/type_quat.inl
  3. 1 1
      test/core/CMakeLists.txt
  4. 1 1
      test/core/core_force_quat_xyzw.cpp

+ 6 - 6
glm/detail/type_quat.hpp

@@ -42,19 +42,19 @@ namespace glm
 #		if GLM_LANG & GLM_LANG_CXXMS_FLAG
 			union
 			{
-#				ifdef GLM_FORCE_QUAT_DATA_WXYZ
-					struct { T w, x, y, z; };
-#				else
+#				ifdef GLM_FORCE_QUAT_DATA_XYZW
 					struct { T x, y, z, w; };
+#				else
+					struct { T w, x, y, z; };
 #				endif
 
 				typename detail::storage<4, T, detail::is_aligned<Q>::value>::type data;
 			};
 #		else
-#			ifdef GLM_FORCE_QUAT_DATA_WXYZ
-				T w, x, y, z;
-#			else
+#			ifdef GLM_FORCE_QUAT_DATA_XYZW
 				T x, y, z, w;
+#			else
+				T w, x, y, z;
 #			endif
 #		endif
 

+ 24 - 24
glm/detail/type_quat.inl

@@ -75,10 +75,10 @@ namespace detail
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR T & qua<T, Q>::operator[](typename qua<T, Q>::length_type i)
 	{
 		assert(i >= 0 && i < this->length());
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			return (&w)[i];
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			return (&x)[i];
+#		else
+			return (&w)[i];
 #		endif
 	}
 
@@ -86,10 +86,10 @@ namespace detail
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR T const& qua<T, Q>::operator[](typename qua<T, Q>::length_type i) const
 	{
 		assert(i >= 0 && i < this->length());
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			return (&w)[i];
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			return (&x)[i];
+#		else
+			return (&w)[i];
 #		endif
 	}
 
@@ -99,10 +99,10 @@ namespace detail
 		template<typename T, qualifier Q>
 		GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua()
 #			if GLM_CONFIG_CTOR_INIT != GLM_CTOR_INIT_DISABLE
-#				ifdef GLM_FORCE_QUAT_DATA_WXYZ
-					: w(1), x(0), y(0), z(0)
-#				else
+#				ifdef GLM_FORCE_QUAT_DATA_XYZW
 					: x(0), y(0), z(0), w(1)
+#				else
+					: w(1), x(0), y(0), z(0)
 #				endif
 #			endif
 		{}
@@ -111,10 +111,10 @@ namespace detail
 #	if GLM_CONFIG_DEFAULTED_FUNCTIONS == GLM_DISABLE
 		template<typename T, qualifier Q>
 		GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua(qua<T, Q> const& q)
-#			ifdef GLM_FORCE_QUAT_DATA_WXYZ
-				: w(q.w), x(q.x), y(q.y), z(q.z)
-#			else
+#			ifdef GLM_FORCE_QUAT_DATA_XYZW
 				: x(q.x), y(q.y), z(q.z), w(q.w)
+#			else
+				: w(q.w), x(q.x), y(q.y), z(q.z)
 #			endif
 		{}
 #	endif
@@ -122,10 +122,10 @@ namespace detail
 	template<typename T, qualifier Q>
 	template<qualifier P>
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua(qua<T, P> const& q)
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			: w(q.w), x(q.x), y(q.y), z(q.z)
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			: x(q.x), y(q.y), z(q.z), w(q.w)
+#		else
+			: w(q.w), x(q.x), y(q.y), z(q.z)
 #		endif
 	{}
 
@@ -133,19 +133,19 @@ namespace detail
 
 	template<typename T, qualifier Q>
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua(T s, vec<3, T, Q> const& v)
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			: w(s), x(v.x), y(v.y), z(v.z)
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			: x(v.x), y(v.y), z(v.z), w(s)
+#		else
+			: w(s), x(v.x), y(v.y), z(v.z)
 #		endif
 	{}
 
 	template <typename T, qualifier Q>
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua(T _w, T _x, T _y, T _z)
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			: w(_w), x(_x), y(_y), z(_z)
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			: x(_x), y(_y), z(_z), w(_w)
+#		else
+			: w(_w), x(_x), y(_y), z(_z)
 #		endif
 	{}
 
@@ -154,10 +154,10 @@ namespace detail
 	template<typename T, qualifier Q>
 	template<typename U, qualifier P>
 	GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua<T, Q>::qua(qua<U, P> const& q)
-#		ifdef GLM_FORCE_QUAT_DATA_WXYZ
-			: w(static_cast<T>(q.w)), x(static_cast<T>(q.x)), y(static_cast<T>(q.y)), z(static_cast<T>(q.z))
-#		else
+#		ifdef GLM_FORCE_QUAT_DATA_XYZW
 			: x(static_cast<T>(q.x)), y(static_cast<T>(q.y)), z(static_cast<T>(q.z)), w(static_cast<T>(q.w))
+#		else
+			: w(static_cast<T>(q.w)), x(static_cast<T>(q.x)), y(static_cast<T>(q.y)), z(static_cast<T>(q.z))
 #		endif
 	{}
 

+ 1 - 1
test/core/CMakeLists.txt

@@ -13,7 +13,7 @@ glmCreateTestGTC(core_force_platform_unknown)
 glmCreateTestGTC(core_force_pure)
 glmCreateTestGTC(core_force_unrestricted_gentype)
 glmCreateTestGTC(core_force_xyzw_only)
-glmCreateTestGTC(core_force_quat_wxyz)
+glmCreateTestGTC(core_force_quat_xyzw)
 glmCreateTestGTC(core_type_aligned)
 glmCreateTestGTC(core_type_cast)
 glmCreateTestGTC(core_type_ctor)

+ 1 - 1
test/core/core_force_quat_wxyz.cpp → test/core/core_force_quat_xyzw.cpp

@@ -1,4 +1,4 @@
-#define GLM_FORCE_QUAT_DATA_WXYZ
+#define GLM_FORCE_QUAT_DATA_XYZW
 #define GLM_FORCE_INLINE
 
 #include <glm/glm.hpp>