瀏覽代碼

Use unary % operator for binary implementation

Christophe Riccio 9 年之前
父節點
當前提交
5e60c54004
共有 1 個文件被更改,包括 7 次插入31 次删除
  1. 7 31
      glm/detail/type_vec4.inl

+ 7 - 31
glm/detail/type_vec4.inl

@@ -754,61 +754,37 @@ namespace detail
 	template <typename T, precision P>
 	template <typename T, precision P>
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar)
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar)
 	{
 	{
-		return tvec4<T, P>(
-			v.x % scalar,
-			v.y % scalar,
-			v.z % scalar,
-			v.w % scalar);
+		return tvec4<T, P>(v) %= scalar;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>
-	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
 	{
 	{
-		return tvec4<T, P>(
-			v.x % scalar.x,
-			v.y % scalar.x,
-			v.z % scalar.x,
-			v.w % scalar.x);
+		return tvec4<T, P>(v1) %= v2.x;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v)
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v)
 	{
 	{
-		return tvec4<T, P>(
-			scalar % v.x,
-			scalar % v.y,
-			scalar % v.z,
-			scalar % v.w);
+		return tvec4<T, P>(scalar) %= v;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
 	{
 	{
-		return tvec4<T, P>(
-			scalar.x % v.x,
-			scalar.x % v.y,
-			scalar.x % v.z,
-			scalar.x % v.w);
+		return tvec4<T, P>(scalar.x) %= v;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
 	{
 	{
-		return tvec4<T, P>(
-			v1.x % v2.x,
-			v1.y % v2.y,
-			v1.z % v2.z,
-			v1.w % v2.w);
+		return tvec4<T, P>(v1) %= v2;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar)
 	GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar)
 	{
 	{
-		return tvec4<T, P>(
-			v.x & scalar,
-			v.y & scalar,
-			v.z & scalar,
-			v.w & scalar);
+		return tvec4<T, P>(v) &= scalar;
 	}
 	}
 
 
 	template <typename T, precision P>
 	template <typename T, precision P>