public override int GetHashCode() { unchecked { var hashCode = M11.GetHashCode(); hashCode = (hashCode * 397) ^ M12.GetHashCode(); hashCode = (hashCode * 397) ^ M13.GetHashCode(); hashCode = (hashCode * 397) ^ M14.GetHashCode(); hashCode = (hashCode * 397) ^ M21.GetHashCode(); hashCode = (hashCode * 397) ^ M22.GetHashCode(); hashCode = (hashCode * 397) ^ M23.GetHashCode(); hashCode = (hashCode * 397) ^ M24.GetHashCode(); hashCode = (hashCode * 397) ^ M31.GetHashCode(); hashCode = (hashCode * 397) ^ M32.GetHashCode(); hashCode = (hashCode * 397) ^ M33.GetHashCode(); hashCode = (hashCode * 397) ^ M34.GetHashCode(); hashCode = (hashCode * 397) ^ M41.GetHashCode(); hashCode = (hashCode * 397) ^ M42.GetHashCode(); hashCode = (hashCode * 397) ^ M43.GetHashCode(); hashCode = (hashCode * 397) ^ M44.GetHashCode(); return(hashCode); } }
public override int GetHashCode() { // Overflow is fine, just wrap unchecked { int hash = 17; hash = hash * 29 + M00.GetHashCode(); hash = hash * 29 + M01.GetHashCode(); hash = hash * 29 + M02.GetHashCode(); hash = hash * 29 + M03.GetHashCode(); hash = hash * 29 + M10.GetHashCode(); hash = hash * 29 + M11.GetHashCode(); hash = hash * 29 + M12.GetHashCode(); hash = hash * 29 + M13.GetHashCode(); hash = hash * 29 + M20.GetHashCode(); hash = hash * 29 + M21.GetHashCode(); hash = hash * 29 + M22.GetHashCode(); hash = hash * 29 + M23.GetHashCode(); return(hash); } }
/// <summary> /// Returns the HashCode for this Matrix3D /// </summary> /// <returns> /// int - the HashCode for this Matrix3D /// </returns> public override int GetHashCode() { if (IsDistinguishedIdentity) { return(c_identityHashCode); } else { // Perform field-by-field XOR of HashCodes return(M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M14.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M24.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode() ^ M34.GetHashCode() ^ OffsetX.GetHashCode() ^ OffsetY.GetHashCode() ^ OffsetZ.GetHashCode() ^ M44.GetHashCode()); } }
public override int GetHashCode() { return(M00.GetHashCode() ^ M01.GetHashCode() ^ M02.GetHashCode() ^ M03.GetHashCode() ^ M10.GetHashCode() ^ M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M20.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M30.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode()); }
/// <summary> /// Returns the string representation of this object</summary> /// <param name="format">Optional standard numeric format string for a floating point number. /// If null, "R" is used for round-trip support in case the string is persisted. /// http://msdn.microsoft.com/en-us/library/vstudio/dwhawy9k(v=vs.100).aspx </param> /// <param name="formatProvider">Optional culture-specific formatting provider. This is usually /// a CultureInfo object or NumberFormatInfo object. If null, the current culture is used. /// Use CultureInfo.InvariantCulture for persistence.</param> /// <returns>String that represents matrix</returns> public string ToString(string format, IFormatProvider formatProvider) { string listSeparator = StringUtil.GetNumberListSeparator(formatProvider); // For historic reasons, use "R" for round-trip support, in case this string is persisted. if (format == null) { format = "R"; } return(String.Format( "{0}{16} {1}{16} {2}{16} {3}{16} {4}{16} {5}{16} {6}{16} {7}{16} {8}{16} {9}{16} " + "{10}{16} {11}{16} {12}{16} {13}{16} {14}{16} {15}", M11.ToString(format, formatProvider), M12.ToString(format, formatProvider), M13.ToString(format, formatProvider), M14.ToString(format, formatProvider), M21.ToString(format, formatProvider), M22.ToString(format, formatProvider), M23.ToString(format, formatProvider), M24.ToString(format, formatProvider), M31.ToString(format, formatProvider), M32.ToString(format, formatProvider), M33.ToString(format, formatProvider), M34.ToString(format, formatProvider), M41.ToString(format, formatProvider), M42.ToString(format, formatProvider), M43.ToString(format, formatProvider), M44.ToString(format, formatProvider), listSeparator)); }
/// <summary> /// Get the hashcode for this <see cref="Matrix3D"/> instance. /// </summary> /// <returns>Returns the hash code for this <see cref="Matrix3D"/> instance.</returns> public override int GetHashCode() { return (M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode()); }
/// <summary> /// Compares whether current instance is equal to specified <see cref="Matrix" /> without any tolerance. /// </summary> /// <param name="other">The <see cref="Matrix" /> to compare.</param> /// <returns><c>true</c> if the instances are equal; <c>false</c> otherwise.</returns> public bool Equals(Matrix other) { return(M11.Equals(other.M11) && M22.Equals(other.M22) && M33.Equals(other.M33) && M44.Equals(other.M44) && M12.Equals(other.M12) && M13.Equals(other.M13) && M14.Equals(other.M14) && M21.Equals(other.M21) && M23.Equals(other.M23) && M24.Equals(other.M24) && M31.Equals(other.M31) && M32.Equals(other.M32) && M34.Equals(other.M34) && M41.Equals(other.M41) && M42.Equals(other.M42) && M43.Equals(other.M43)); }
public override int GetHashCode() { return (M11.GetHashCode() + M12.GetHashCode() + M13.GetHashCode() + M14.GetHashCode() + M21.GetHashCode() + M22.GetHashCode() + M23.GetHashCode() + M24.GetHashCode() + M31.GetHashCode() + M32.GetHashCode() + M33.GetHashCode() + M34.GetHashCode() + M41.GetHashCode() + M42.GetHashCode() + M43.GetHashCode() + M44.GetHashCode()); }
/// <summary> /// Gets the hash code for a given Matrix4. /// </summary> /// <returns>The calculated hash code.</returns> public override int GetHashCode() { // Note this method of hash code generation is similar to what the XNA framework does return(M11.GetHashCode() + M12.GetHashCode() + M13.GetHashCode() + M14.GetHashCode() + M21.GetHashCode() + M22.GetHashCode() + M23.GetHashCode() + M24.GetHashCode() + M31.GetHashCode() + M32.GetHashCode() + M33.GetHashCode() + M34.GetHashCode() + M41.GetHashCode() + M42.GetHashCode() + M43.GetHashCode() + M44.GetHashCode()); }
public void dump(string name = "") { DOut.pl(nameof(UMatrix4) + " " + name + " {"); DOut.Indent++; DOut.pl(M11.ToString() + ", " + M12.ToString() + ", " + M13.ToString() + ", " + M14.ToString()); DOut.pl(M21.ToString() + ", " + M22.ToString() + ", " + M23.ToString() + ", " + M24.ToString()); DOut.pl(M31.ToString() + ", " + M32.ToString() + ", " + M33.ToString() + ", " + M34.ToString()); DOut.pl(M41.ToString() + ", " + M42.ToString() + ", " + M43.ToString() + ", " + M44.ToString()); DOut.Indent--; DOut.pl("}"); }
/// <summary> /// Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table</summary> /// <returns>A hash code for the current <see cref="T:System.Object"></see></returns> public override int GetHashCode() { long bits = 1; bits = 31 * bits + M11.GetHashCode(); bits = 31 * bits + M12.GetHashCode(); bits = 31 * bits + M13.GetHashCode(); bits = 31 * bits + M21.GetHashCode(); bits = 31 * bits + M22.GetHashCode(); bits = 31 * bits + M23.GetHashCode(); bits = 31 * bits + M31.GetHashCode(); bits = 31 * bits + M32.GetHashCode(); bits = 31 * bits + M33.GetHashCode(); return((int)(bits ^ (bits >> 32))); }
public string ToString(string format) { if (format == null) { return(ToString()); } return(string.Format(format, CultureInfo.CurrentCulture, "[M11:{0} M12:{1} M13:{2}] [M21:{3} M22:{4} M23:{5}] [M31:{6} M32:{7} M33:{8}]", M11.ToString(format, CultureInfo.CurrentCulture), M12.ToString(format, CultureInfo.CurrentCulture), M13.ToString(format, CultureInfo.CurrentCulture), M21.ToString(format, CultureInfo.CurrentCulture), M22.ToString(format, CultureInfo.CurrentCulture), M23.ToString(format, CultureInfo.CurrentCulture), M31.ToString(format, CultureInfo.CurrentCulture), M32.ToString(format, CultureInfo.CurrentCulture), M33.ToString(format, CultureInfo.CurrentCulture))); }
public string ToString(string format, IFormatProvider formatProvider) { if (format == null) { return(ToString(formatProvider)); } return(string.Format(format, formatProvider, "[M11:{0} M12:{1} M13:{2}] [M21:{3} M22:{4} M23:{5}] [M31:{6} M32:{7} M33:{8}]", M11.ToString(format, formatProvider), M12.ToString(format, formatProvider), M13.ToString(format, formatProvider), M21.ToString(format, formatProvider), M22.ToString(format, formatProvider), M23.ToString(format, formatProvider), M31.ToString(format, formatProvider), M32.ToString(format, formatProvider), M33.ToString(format, formatProvider))); }
public override int GetHashCode() { unchecked { int hashCode = M11.GetHashCode(); hashCode = (hashCode * 397) ^ M12.GetHashCode(); hashCode = (hashCode * 397) ^ M13.GetHashCode(); hashCode = (hashCode * 397) ^ M21.GetHashCode(); hashCode = (hashCode * 397) ^ M22.GetHashCode(); hashCode = (hashCode * 397) ^ M23.GetHashCode(); hashCode = (hashCode * 397) ^ M31.GetHashCode(); hashCode = (hashCode * 397) ^ M32.GetHashCode(); hashCode = (hashCode * 397) ^ M33.GetHashCode(); return(hashCode); } }
public override int GetHashCode() { // Perform field-by-field XOR of HashCodes return(M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M14.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M24.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode() ^ M34.GetHashCode() ^ OffsetX.GetHashCode() ^ OffsetY.GetHashCode() ^ OffsetZ.GetHashCode() ^ M44.GetHashCode()); }
public string ToString(string formatDouble, IFormatProvider provider) { StringBuilder s = new StringBuilder(); s.Append(M11.ToString(formatDouble, provider)); s.Append(", "); s.Append(M12.ToString(formatDouble, provider)); s.Append(", "); s.Append(M13.ToString(formatDouble, provider)); s.Append(", "); s.Append(M21.ToString(formatDouble, provider)); s.Append(", "); s.Append(M22.ToString(formatDouble, provider)); s.Append(", "); s.Append(M23.ToString(formatDouble, provider)); s.Append(", "); s.Append(M31.ToString(formatDouble, provider)); s.Append(", "); s.Append(M32.ToString(formatDouble, provider)); s.Append(", "); s.Append(M33.ToString(formatDouble, provider)); return(s.ToString()); }
/// <inheritdoc/> public override Int32 GetHashCode() { unchecked { var hash = 17; hash = hash * 23 + M11.GetHashCode(); hash = hash * 23 + M12.GetHashCode(); hash = hash * 23 + M13.GetHashCode(); hash = hash * 23 + M14.GetHashCode(); hash = hash * 23 + M21.GetHashCode(); hash = hash * 23 + M22.GetHashCode(); hash = hash * 23 + M23.GetHashCode(); hash = hash * 23 + M24.GetHashCode(); hash = hash * 23 + M31.GetHashCode(); hash = hash * 23 + M32.GetHashCode(); hash = hash * 23 + M33.GetHashCode(); hash = hash * 23 + M34.GetHashCode(); hash = hash * 23 + M41.GetHashCode(); hash = hash * 23 + M42.GetHashCode(); hash = hash * 23 + M43.GetHashCode(); hash = hash * 23 + M44.GetHashCode(); return(hash); } }
//// =========================================================================================================== //// Equality Members //// =========================================================================================================== public bool Equals(Matrix4x4 other) { // Check the diagonals first to see if we can exit early for identity matrix equality. return(M00.IsApproximatelyEqual(other.M00) && M11.IsApproximatelyEqual(other.M11) && M22.IsApproximatelyEqual(other.M22) && M33.IsApproximatelyEqual(other.M33) && M01.IsApproximatelyEqual(other.M01) && M02.IsApproximatelyEqual(other.M02) && M03.IsApproximatelyEqual(other.M03) && M10.IsApproximatelyEqual(other.M10) && M12.IsApproximatelyEqual(other.M12) && M13.IsApproximatelyEqual(other.M13) && M20.IsApproximatelyEqual(other.M20) && M21.IsApproximatelyEqual(other.M21) && M23.IsApproximatelyEqual(other.M23) && M30.IsApproximatelyEqual(other.M30) && M31.IsApproximatelyEqual(other.M31) && M32.IsApproximatelyEqual(other.M32)); }
/// <inheritdoc /> public bool Equals(Matrix4x4 other) => M11.Equals(other.M11) && M12.Equals(other.M12) && M13.Equals(other.M13) && M14.Equals(other.M14) && M21.Equals(other.M21) && M22.Equals(other.M22) && M23.Equals(other.M23) && M24.Equals(other.M24) && M31.Equals(other.M31) && M32.Equals(other.M32) && M33.Equals(other.M33) && M34.Equals(other.M34) && M41.Equals(other.M41) && M42.Equals(other.M42) && M43.Equals(other.M43) && M44.Equals(other.M44);
public bool Equals(Matrix3X3 other) { return(M11.Equals(other.M11) && M21.Equals(other.M21) && M31.Equals(other.M31) && M12.Equals(other.M12) && M22.Equals(other.M22) && M32.Equals(other.M32) && M13.Equals(other.M13) && M23.Equals(other.M23) && M33.Equals(other.M33)); }
public override int GetHashCode() => M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M14.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M24.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode() ^ M34.GetHashCode() ^ M41.GetHashCode() ^ M42.GetHashCode() ^ M43.GetHashCode() ^ M44.GetHashCode();
//#endif #endregion #region IEquatable<Matrix4x4d> Members public bool Equals(Matrix4x4d other) { // Check reference first. if (object.ReferenceEquals(this, other)) { return(true); } // Check for value equality. if (!M00.Equals(other.M00)) { return(false); } if (!M10.Equals(other.M10)) { return(false); } if (!M20.Equals(other.M20)) { return(false); } if (!M30.Equals(other.M30)) { return(false); } if (!M01.Equals(other.M01)) { return(false); } if (!M11.Equals(other.M11)) { return(false); } if (!M21.Equals(other.M21)) { return(false); } if (!M31.Equals(other.M31)) { return(false); } if (!M02.Equals(other.M02)) { return(false); } if (!M12.Equals(other.M12)) { return(false); } if (!M22.Equals(other.M22)) { return(false); } if (!M32.Equals(other.M32)) { return(false); } if (!M03.Equals(other.M03)) { return(false); } if (!M13.Equals(other.M13)) { return(false); } if (!M23.Equals(other.M23)) { return(false); } if (!M33.Equals(other.M33)) { return(false); } return(true); }
public bool Equals(Float3x3 other) => M11.Equals(other.M11) && M12.Equals(other.M12) && M13.Equals(other.M13) && M21.Equals(other.M21) && M22.Equals(other.M22) && M23.Equals(other.M23) && M31.Equals(other.M31) && M32.Equals(other.M32) && M33.Equals(other.M33);
public override string ToString() { return(M00.ToString() + "," + M01.ToString() + "," + M02.ToString() + "," + M03.ToString() + "\r\n" + M10.ToString() + "," + M11.ToString() + "," + M12.ToString() + "," + M13.ToString() + "\r\n" + M20.ToString() + "," + M21.ToString() + "," + M22.ToString() + "," + M23.ToString() + "\r\n" + M30.ToString() + "," + M31.ToString() + "," + M32.ToString() + "," + M33.ToString()); }
public override int GetHashCode() => M11.GetHashCode() ^ M12.GetHashCode() ^ M13.GetHashCode() ^ M21.GetHashCode() ^ M22.GetHashCode() ^ M23.GetHashCode() ^ M31.GetHashCode() ^ M32.GetHashCode() ^ M33.GetHashCode();
public override string ToString() { return($"| {M11.HexString()}, {M21.HexString()}, {M31.HexString()} |\n| {M12.HexString()}, {M22.HexString()}, {M32.HexString()} |\n| {M13.HexString()}, {M23.HexString()}, {M33.HexString()} |"); }
public override int GetHashCode() { return(HashCode.Combine( HashCode.Combine(M00.RoundToEpsilon(), M01.RoundToEpsilon(), M02.RoundToEpsilon(), M03.RoundToEpsilon()), HashCode.Combine(M10.RoundToEpsilon(), M11.RoundToEpsilon(), M12.RoundToEpsilon(), M13.RoundToEpsilon()), HashCode.Combine(M20.RoundToEpsilon(), M21.RoundToEpsilon(), M22.RoundToEpsilon(), M23.RoundToEpsilon()), HashCode.Combine(M30.RoundToEpsilon(), M31.RoundToEpsilon(), M32.RoundToEpsilon(), M33.RoundToEpsilon()))); }
/// <summary> /// Returns the hash code for this instance. /// </summary> /// <returns>The hash code.</returns> public override int GetHashCode() { return(unchecked (M11.GetHashCode() + M12.GetHashCode() + M13.GetHashCode() + M21.GetHashCode() + M22.GetHashCode() + M23.GetHashCode() + M31.GetHashCode() + M32.GetHashCode() + M33.GetHashCode())); }