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