diff --git a/Source/OpenTK/Math/Matrix3.cs b/Source/OpenTK/Math/Matrix3.cs index 4c594930..9278e32b 100644 --- a/Source/OpenTK/Math/Matrix3.cs +++ b/Source/OpenTK/Math/Matrix3.cs @@ -192,7 +192,10 @@ namespace OpenTK #region Instance #region public void Invert() - + + /// + /// Converts this instance into its inverse. + /// public void Invert() { this = Matrix3.Invert(this); @@ -201,7 +204,10 @@ namespace OpenTK #endregion #region public void Transpose() - + + /// + /// Converts this instance into its transpose. + /// public void Transpose() { this = Matrix3.Transpose(this); @@ -214,7 +220,13 @@ namespace OpenTK #region Static #region CreateFromAxisAngle - + + /// + /// Build a rotation matrix from the specified axis/angle rotation. + /// + /// The axis to rotate about. + /// Angle in radians to rotate counter-clockwise (looking in the direction of the given axis). + /// A matrix instance. public static void CreateFromAxisAngle(Vector3 axis, float angle, out Matrix3 result) { //normalize and create a local copy of the vector. @@ -248,7 +260,13 @@ namespace OpenTK result.Row2.Y = tYZ + sinX; result.Row2.Z = tZZ + cos; } - + + /// + /// Build a rotation matrix from the specified axis/angle rotation. + /// + /// The axis to rotate about. + /// Angle in radians to rotate counter-clockwise (looking in the direction of the given axis). + /// A matrix instance. public static Matrix3 CreateFromAxisAngle(Vector3 axis, float angle) { Matrix3 result; @@ -259,7 +277,12 @@ namespace OpenTK #endregion #region CreateFromQuaternion - + + /// + /// Build a rotation matrix from the specified quaternion. + /// + /// Quaternion to translate. + /// Matrix result. public static void CreateFromQuaternion(ref Quaternion q, out Matrix3 result) { Vector3 axis; @@ -267,7 +290,12 @@ namespace OpenTK q.ToAxisAngle(out axis, out angle); CreateFromAxisAngle(axis, angle, out result); } - + + /// + /// Build a rotation matrix from the specified quaternion. + /// + /// Quaternion to translate. + /// A matrix instance. public static Matrix3 CreateFromQuaternion(Quaternion q) { Matrix3 result; @@ -278,7 +306,12 @@ namespace OpenTK #endregion #region CreateRotation[XYZ] - + + /// + /// Builds a rotation matrix for a rotation around the x-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static void CreateRotationX(float angle, out Matrix3 result) { float cos = (float)System.Math.Cos(angle); @@ -290,14 +323,24 @@ namespace OpenTK result.Row2.Y = -sin; result.Row2.Z = cos; } - + + /// + /// Builds a rotation matrix for a rotation around the x-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static Matrix3 CreateRotationX(float angle) { Matrix3 result; CreateRotationX(angle, out result); return result; } - + + /// + /// Builds a rotation matrix for a rotation around the y-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static void CreateRotationY(float angle, out Matrix3 result) { float cos = (float)System.Math.Cos(angle); @@ -309,14 +352,24 @@ namespace OpenTK result.Row2.X = sin; result.Row2.Z = cos; } - + + /// + /// Builds a rotation matrix for a rotation around the y-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static Matrix3 CreateRotationY(float angle) { Matrix3 result; CreateRotationY(angle, out result); return result; } - + + /// + /// Builds a rotation matrix for a rotation around the z-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static void CreateRotationZ(float angle, out Matrix3 result) { float cos = (float)System.Math.Cos(angle); @@ -328,7 +381,12 @@ namespace OpenTK result.Row1.X = -sin; result.Row1.Y = cos; } - + + /// + /// Builds a rotation matrix for a rotation around the z-axis. + /// + /// The counter-clockwise angle in radians. + /// The resulting Matrix3 instance. public static Matrix3 CreateRotationZ(float angle) { Matrix3 result; @@ -422,14 +480,26 @@ namespace OpenTK #endregion #region Multiply Functions - + + /// + /// Multiplies two instances. + /// + /// The left operand of the multiplication. + /// The right operand of the multiplication. + /// A new instance that is the result of the multiplication public static Matrix3 Mult(Matrix3 left, Matrix3 right) { Matrix3 result; Mult(ref left, ref right, out result); return result; } - + + /// + /// Multiplies two instances. + /// + /// The left operand of the multiplication. + /// The right operand of the multiplication. + /// A new instance that is the result of the multiplication public static void Mult(ref Matrix3 left, ref Matrix3 right, out Matrix3 result) { float lM11 = left.Row0.X, lM12 = left.Row0.Y, lM13 = left.Row0.Z, @@ -578,12 +648,22 @@ namespace OpenTK #endregion #region Transpose - + + /// + /// Calculate the transpose of the given matrix + /// + /// The matrix to transpose + /// The transpose of the given matrix public static Matrix3 Transpose(Matrix3 mat) { return new Matrix3(mat.Column0, mat.Column1, mat.Column2); } - + + /// + /// Calculate the transpose of the given matrix + /// + /// The matrix to transpose + /// The result of the calculation public static void Transpose(ref Matrix3 mat, out Matrix3 result) { result.Row0 = mat.Column0; @@ -596,17 +676,35 @@ namespace OpenTK #endregion #region Operators - + + /// + /// Matrix multiplication + /// + /// left-hand operand + /// right-hand operand + /// A new Matrix3d which holds the result of the multiplication public static Matrix3 operator *(Matrix3 left, Matrix3 right) { return Matrix3.Mult(left, right); } - + + /// + /// Compares two instances for equality. + /// + /// The first instance. + /// The second instance. + /// True, if left equals right; false otherwise. public static bool operator ==(Matrix3 left, Matrix3 right) { return left.Equals(right); } - + + /// + /// Compares two instances for inequality. + /// + /// The first instance. + /// The second instance. + /// True, if left does not equal right; false otherwise. public static bool operator !=(Matrix3 left, Matrix3 right) { return !left.Equals(right); @@ -664,7 +762,10 @@ namespace OpenTK #endregion #region IEquatable Members - + + /// Indicates whether the current matrix is equal to another matrix. + /// A matrix to compare with this matrix. + /// true if the current matrix is equal to the matrix parameter; otherwise, false. public bool Equals(Matrix3 other) { return