Browse Source

Use unary bit operators for binary implementation

Christophe Riccio 9 years ago
parent
commit
3081b44ed2
1 changed files with 7 additions and 27 deletions
  1. 7 27
      glm/detail/type_vec4.inl

+ 7 - 27
glm/detail/type_vec4.inl

@@ -830,51 +830,31 @@ 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;
 	}
 
 	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)
+	GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
 	{
-		return tvec4<T, P>(
-			scalar.x | v.x,
-			scalar.x | v.y,
-			scalar.x | v.z,
-			scalar.x | v.w);
+		return tvec4<T, P>(v1.x) |= v2;
 	}
 
 	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>