/// <summary>Linearly interpolates between the corresponding values of two matrices.</summary> /// <param name="matrix1">The first source matrix.</param> /// <param name="matrix2">The second source matrix.</param> /// <param name="amount">The relative weight of the second source matrix.</param> /// <returns>The interpolated matrix.</returns> public static unsafe Matrix3X4 <T> Lerp <T>(Matrix3X4 <T> matrix1, Matrix3X4 <T> matrix2, T amount) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> { return(new( Vector4D.Lerp(matrix1.Row1, matrix2.Row1, amount), Vector4D.Lerp(matrix1.Row2, matrix2.Row2, amount), Vector4D.Lerp(matrix1.Row3, matrix2.Row3, amount) )); }
public static Matrix3X3 <T> Multiply <T>(Matrix3X4 <T> value1, Matrix4X3 <T> value2) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> => value1 * value2;
public static Matrix3X4 <T> Subtract <T>(Matrix3X4 <T> value1, Matrix3X4 <T> value2) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> => value1 - value2;
public static Matrix3X4 <T> Negate <T>(Matrix3X4 <T> value) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> => - value;
public static Vector4D <T> Multiply <T>(Vector3D <T> value1, Matrix3X4 <T> value2) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> => value1 * value2;
public static Matrix3X4 <T> Add <T>(Matrix3X4 <T> value1, Matrix3X4 <T> value2) where T : unmanaged, IFormattable, IEquatable <T>, IComparable <T> { return(value1 + value2); }