diff --git a/Source/OpenTK/Math/Vector2.cs b/Source/OpenTK/Math/Vector2.cs
index e4bb0dcf..4d1064a6 100644
--- a/Source/OpenTK/Math/Vector2.cs
+++ b/Source/OpenTK/Math/Vector2.cs
@@ -1062,6 +1062,19 @@ namespace OpenTK
return vec;
}
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector2 operator *(Vector2 vec, Vector2 scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ return vec;
+ }
+
///
/// Divides the specified instance by a scalar.
///
diff --git a/Source/OpenTK/Math/Vector2d.cs b/Source/OpenTK/Math/Vector2d.cs
index 4b772b9c..8c3846cf 100644
--- a/Source/OpenTK/Math/Vector2d.cs
+++ b/Source/OpenTK/Math/Vector2d.cs
@@ -924,6 +924,19 @@ namespace OpenTK
return vec;
}
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector2d operator *(Vector2d vec, Vector2d scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ return vec;
+ }
+
///
/// Divides an instance by a scalar.
///
diff --git a/Source/OpenTK/Math/Vector3.cs b/Source/OpenTK/Math/Vector3.cs
index d5d2d39d..8a096653 100644
--- a/Source/OpenTK/Math/Vector3.cs
+++ b/Source/OpenTK/Math/Vector3.cs
@@ -1373,6 +1373,20 @@ namespace OpenTK
return vec;
}
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector3 operator *(Vector3 vec, Vector3 scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ vec.Z *= scale.Z;
+ return vec;
+ }
+
///
/// Divides an instance by a scalar.
///
diff --git a/Source/OpenTK/Math/Vector3d.cs b/Source/OpenTK/Math/Vector3d.cs
index df707c00..0b281625 100644
--- a/Source/OpenTK/Math/Vector3d.cs
+++ b/Source/OpenTK/Math/Vector3d.cs
@@ -1370,7 +1370,21 @@ namespace OpenTK
vec.Z *= scale;
return vec;
}
-
+
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector3d operator *(Vector3d vec, Vector3d scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ vec.Z *= scale.Z;
+ return vec;
+ }
+
///
/// Divides an instance by a scalar.
///
diff --git a/Source/OpenTK/Math/Vector4.cs b/Source/OpenTK/Math/Vector4.cs
index b0e6b1fd..98f374fc 100644
--- a/Source/OpenTK/Math/Vector4.cs
+++ b/Source/OpenTK/Math/Vector4.cs
@@ -1490,7 +1490,22 @@ namespace OpenTK
vec.W *= scale;
return vec;
}
-
+
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector4 operator *(Vector4 vec, Vector4 scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ vec.Z *= scale.Z;
+ vec.W *= scale.W;
+ return vec;
+ }
+
///
/// Divides an instance by a scalar.
///
diff --git a/Source/OpenTK/Math/Vector4d.cs b/Source/OpenTK/Math/Vector4d.cs
index c7d0c0e3..72aa84a6 100644
--- a/Source/OpenTK/Math/Vector4d.cs
+++ b/Source/OpenTK/Math/Vector4d.cs
@@ -1493,6 +1493,21 @@ namespace OpenTK
vec.W *= scale;
return vec;
}
+
+ ///
+ /// Component-wise multiplication between the specified instance by a scale vector.
+ ///
+ /// Left operand.
+ /// Right operand.
+ /// Result of multiplication.
+ public static Vector4d operator *(Vector4d vec, Vector4d scale)
+ {
+ vec.X *= scale.X;
+ vec.Y *= scale.Y;
+ vec.Z *= scale.Z;
+ vec.W *= scale.W;
+ return vec;
+ }
///
/// Divides an instance by a scalar.