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.