Added multiplication operator to all vectors
authorPhyyl <Phyyl@live.ca>
Mon, 17 Mar 2014 20:59:09 +0000 (16:59 -0400)
committerPhyyl <Phyyl@live.ca>
Mon, 17 Mar 2014 20:59:09 +0000 (16:59 -0400)
Source/OpenTK/Math/Vector2.cs
Source/OpenTK/Math/Vector2d.cs
Source/OpenTK/Math/Vector3.cs
Source/OpenTK/Math/Vector3d.cs
Source/OpenTK/Math/Vector4.cs
Source/OpenTK/Math/Vector4d.cs

index e4bb0dc..4d1064a 100644 (file)
@@ -1063,6 +1063,19 @@ namespace OpenTK
         }
 
         /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        public static Vector2 operator *(Vector2 vec, Vector2 scale)
+        {
+            vec.X *= scale.X;
+            vec.Y *= scale.Y;
+            return vec;
+        }
+               
+        /// <summary>
         /// Divides the specified instance by a scalar.
         /// </summary>
         /// <param name="vec">Left operand</param>
index 4b772b9..8c3846c 100644 (file)
@@ -925,6 +925,19 @@ namespace OpenTK
         }
 
         /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        public static Vector2d operator *(Vector2d vec, Vector2d scale)
+        {
+            vec.X *= scale.X;
+            vec.Y *= scale.Y;
+            return vec;
+        }
+               
+        /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
         /// <param name="vec">The instance.</param>
index d5d2d39..8a09665 100644 (file)
@@ -1374,6 +1374,20 @@ namespace OpenTK
         }
 
         /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        public static Vector3 operator *(Vector3 vec, Vector3 scale)
+        {
+            vec.X *= scale.X;
+            vec.Y *= scale.Y;
+            vec.Z *= scale.Z;
+            return vec;
+        }
+               
+        /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
         /// <param name="vec">The instance.</param>
index df707c0..0b28162 100644 (file)
@@ -1370,7 +1370,21 @@ namespace OpenTK
             vec.Z *= scale;
             return vec;
         }
-
+               
+        /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        public static Vector3d operator *(Vector3d vec, Vector3d scale)
+        {
+            vec.X *= scale.X;
+            vec.Y *= scale.Y;
+            vec.Z *= scale.Z;
+            return vec;
+        }
+               
         /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
index b0e6b1f..98f374f 100644 (file)
@@ -1490,7 +1490,22 @@ namespace OpenTK
             vec.W *= scale;
             return vec;
         }
-
+               
+        /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        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;
+        }
+               
         /// <summary>
         /// Divides an instance by a scalar.
         /// </summary>
index c7d0c0e..72aa84a 100644 (file)
@@ -1493,6 +1493,21 @@ namespace OpenTK
             vec.W *= scale;
             return vec;
         }
+               
+        /// <summary>
+        /// Component-wise multiplication between the specified instance by a scale vector.
+        /// </summary>
+        /// <param name="scale">Left operand.</param>
+        /// <param name="vec">Right operand.</param>
+        /// <returns>Result of multiplication.</returns>
+        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;
+        }
 
         /// <summary>
         /// Divides an instance by a scalar.