{\r
return x.GetHashCode() ^ y.GetHashCode();\r
}\r
+\r
+ public bool Equals(Point2 p)\r
+ {\r
+ return (x == p.x) && (y == p.y);\r
+ }\r
}\r
\r
public partial struct Point3 : IComparable<Point3>\r
{\r
return x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode();\r
}\r
+\r
+ public bool Equals(Point3 p)\r
+ {\r
+ return (x == p.x) && (y == p.y) && (z == p.z);\r
+ }\r
}\r
\r
public partial struct Point4 : IComparable<Point4>\r
{\r
return x.GetHashCode() ^ y.GetHashCode() ^ z.GetHashCode() ^ w.GetHashCode();\r
}\r
+\r
+ public bool Equals(Point4 p)\r
+ {\r
+ return (x == p.x) && (y == p.y) && (z == p.z) && (w == p.w);\r
+ }\r
}\r
\r
public partial struct Color3\r
\r
public override bool Equals(object obj)\r
{\r
- UVertex o = obj as UVertex;\r
+ if (obj is UVertex)\r
+ {\r
+ UVertex v = (UVertex)obj;\r
+ return Pos.Equals(v.Pos) && Nrm.Equals(v.Nrm);\r
+ }\r
+ return false;\r
+ }\r
\r
- if(o == null)\r
+ public bool Equals(UVertex v)\r
+ {\r
+ if ((object)v == null)\r
+ {\r
return false;\r
+ }\r
\r
- return Pos.x==o.Pos.x && Pos.y==o.Pos.y && Pos.z==o.Pos.z\r
- && Nrm.x==o.Nrm.x && Nrm.y==o.Nrm.y && Nrm.z==o.Nrm.z;\r
+ return Pos.Equals(v.Pos) && Nrm.Equals(v.Nrm);\r
}\r
}\r
}\r
\r
public override bool Equals(object obj)\r
{\r
- Vertex o = (Vertex)obj;\r
+ if (obj is Vertex)\r
+ {\r
+ Vertex v = (Vertex)obj;\r
+ return Pos.Equals(v.Pos) && Nrm.Equals(v.Nrm) && Tex.Equals(v.Tex)\r
+ ^ Wgt.Equals(v.Wgt) && Idx.Equals(v.Idx);\r
+ }\r
+ return false;\r
+ }\r
\r
- return Pos.x==o.Pos.x && Pos.y==o.Pos.y && Pos.z==o.Pos.z\r
- && Nrm.x==o.Nrm.x && Nrm.y==o.Nrm.y && Nrm.z==o.Nrm.z\r
- && Tex.x==o.Tex.x && Tex.y==o.Tex.y && Wgt.w==o.Wgt.w\r
- && Wgt.x==o.Wgt.x && Wgt.y==o.Wgt.y && Wgt.z==o.Wgt.z\r
- && Idx ==o.Idx;\r
+ public bool Equals(Vertex v)\r
+ {\r
+ return Pos.Equals(v.Pos) && Nrm.Equals(v.Nrm) && Tex.Equals(v.Tex)\r
+ ^ Wgt.Equals(v.Wgt) && Idx.Equals(v.Idx);\r
}\r
}\r
\r