/// <summary> /// Transforms a given vector by a matrix. /// </summary> /// <param name="matrix">A <see cref="Matrix3D"/> instance.</param> /// <param name="vector">A <see cref="Vector3"/> instance.</param> /// <returns>A new <see cref="Vector3"/> instance containing the result.</returns> public static Vector3 operator*(Matrix3D matrix, Vector3 vector) { return(Matrix3D.Transform(matrix, vector)); }
/// <summary> /// Subtracts a scalar from a matrix. /// </summary> /// <param name="a">A <see cref="Matrix3D"/> instance.</param> /// <param name="s">A scalar.</param> /// <returns>A new <see cref="Matrix3D"/> instance containing the difference.</returns> public static Matrix3D operator-(Matrix3D a, double s) { return(Matrix3D.Subtract(a, s)); }
/// <summary> /// Multiplies two matrices. /// </summary> /// <param name="a">A <see cref="Matrix3D"/> instance.</param> /// <param name="b">A <see cref="Matrix3D"/> instance.</param> /// <returns>A new <see cref="Matrix3D"/> instance containing the result.</returns> public static Matrix3D operator*(Matrix3D a, Matrix3D b) { return(Matrix3D.Multiply(a, b)); }
/// <summary> /// Subtracts a matrix from a matrix. /// </summary> /// <param name="a">A <see cref="Matrix3D"/> instance.</param> /// <param name="b">A <see cref="Matrix3D"/> instance.</param> /// <returns>A new <see cref="Matrix3D"/> instance containing the difference.</returns> public static Matrix3D operator-(Matrix3D a, Matrix3D b) { return(Matrix3D.Subtract(a, b)); }
/// <summary> /// Adds a matrix and a scalar. /// </summary> /// <param name="a">A <see cref="Matrix3D"/> instance.</param> /// <param name="s">A scalar.</param> /// <returns>A new <see cref="Matrix3D"/> instance containing the sum.</returns> public static Matrix3D operator+(double s, Matrix3D a) { return(Matrix3D.Add(a, s)); }
/// <summary> /// Adds two matrices. /// </summary> /// <param name="a">A <see cref="Matrix3D"/> instance.</param> /// <param name="b">A <see cref="Matrix3D"/> instance.</param> /// <returns>A new <see cref="Matrix3D"/> instance containing the sum.</returns> public static Matrix3D operator+(Matrix3D a, Matrix3D b) { return(Matrix3D.Add(a, b)); }
/// <summary> /// Transforms a given vector by a matrix and put the result in a vector. /// </summary> /// <param name="matrix">A <see cref="Matrix3D"/> instance.</param> /// <param name="vector">A <see cref="Vector3"/> instance.</param> /// <param name="result">A <see cref="Vector3"/> instance to hold the result.</param> public static void Transform(Matrix3D matrix, Vector3 vector, ref Vector3 result) { result.X = (matrix.M11 * vector.X) + (matrix.M12 * vector.Y) + (matrix.M13 * vector.Z); result.Y = (matrix.M21 * vector.X) + (matrix.M22 * vector.Y) + (matrix.M23 * vector.Z); result.Z = (matrix.M31 * vector.X) + (matrix.M32 * vector.Y) + (matrix.M33 * vector.Z); }
/// <summary> /// Initializes a new instance of the <see cref="Matrix3D"/> class using a given matrix. /// </summary> public Matrix3D(Matrix3D m) { _m11 = m.M11; _m12 = m.M12; _m13 = m.M13; _m21 = m.M21; _m22 = m.M22; _m23 = m.M23; _m31 = m.M31; _m32 = m.M32; _m33 = m.M33; }