From 7c090f9f3de010d4009b86c9ab1483d44c30dc8e Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Thu, 29 Aug 2019 23:39:17 -0400 Subject: [PATCH] Implement equality checks --- .../PositionVector3.cs | 26 +++++++++++++++++-- .../PositionVector4.cs | 24 ++++++++++++++++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector3.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector3.cs index 8df3be85..bb055d89 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector3.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector3.cs @@ -116,9 +116,31 @@ namespace UniversalEditor clone.Y = mvarY; clone.Z = mvarZ; return clone; - } + } - public double GetLargestComponentValue() + public override bool Equals(object obj) + { + PositionVector3 pv = (PositionVector3)obj; + try + { + return (pv.X == X && pv.Y == Y && pv.Z == Z); + } + catch (Exception ex) + { + return false; + } + } + + public static bool operator ==(PositionVector3 left, PositionVector3 right) + { + return left.Equals(right); + } + public static bool operator !=(PositionVector3 left, PositionVector3 right) + { + return !left.Equals(right); + } + + public double GetLargestComponentValue() { if (mvarX > mvarY && mvarX > mvarZ) return mvarX; if (mvarY > mvarX && mvarY > mvarZ) return mvarY; diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector4.cs b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector4.cs index ca3c60e9..d56ae017 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector4.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Multimedia3D/PositionVector4.cs @@ -223,5 +223,27 @@ namespace UniversalEditor PositionVector4 clone = new PositionVector4(mvarX, mvarY, mvarZ, mvarW); return clone; } - } + + public override bool Equals(object obj) + { + PositionVector4 pv = (PositionVector4)obj; + try + { + return (pv.X == X && pv.Y == Y && pv.Z == Z && pv.W == W); + } + catch (Exception ex) + { + return false; + } + } + + public static bool operator ==(PositionVector4 left, PositionVector4 right) + { + return left.Equals(right); + } + public static bool operator !=(PositionVector4 left, PositionVector4 right) + { + return !left.Equals(right); + } + } }