Browse Source

Use unary % operator for binary implementation

Christophe Riccio 9 years ago
parent
commit
5e60c54004
1 changed files with 7 additions and 31 deletions
  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>
 	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>
-	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>
 	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>
 	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>
 	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>
 	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>