\r
namespace Tso2MqoGui\r
{\r
- public partial struct Point2\r
+ public partial struct Point2 : IComparable<Point2>\r
{\r
public float x, y;\r
\r
float.Parse(t[begin+0]),\r
float.Parse(t[begin+1]));\r
}\r
+\r
+ public int CompareTo(Point2 obj)\r
+ {\r
+ int cmp;\r
+ cmp = x.CompareTo(obj.x); if (cmp != 0) return cmp;\r
+ cmp = y.CompareTo(obj.y);\r
+ return cmp;\r
+ }\r
}\r
\r
- public partial struct Point3\r
+ public partial struct Point3 : IComparable<Point3>\r
{\r
public float x, y, z;\r
\r
float.Parse(t[begin+1]),\r
float.Parse(t[begin+2]));\r
}\r
+\r
+ public int CompareTo(Point3 obj)\r
+ {\r
+ int cmp;\r
+ cmp = x.CompareTo(obj.x); if (cmp != 0) return cmp;\r
+ cmp = y.CompareTo(obj.y); if (cmp != 0) return cmp;\r
+ cmp = z.CompareTo(obj.z);\r
+ return cmp;\r
+ }\r
}\r
\r
- public partial struct Point4\r
+ public partial struct Point4 : IComparable<Point4>\r
{\r
public float x, y, z, w;\r
\r
{\r
return X+","+Y+","+Z+","+W;\r
}\r
+\r
+ public int CompareTo(Point4 obj)\r
+ {\r
+ int cmp;\r
+ cmp = x.CompareTo(obj.x); if (cmp != 0) return cmp;\r
+ cmp = y.CompareTo(obj.y); if (cmp != 0) return cmp;\r
+ cmp = z.CompareTo(obj.z); if (cmp != 0) return cmp;\r
+ cmp = w.CompareTo(obj.w);\r
+ return cmp;\r
+ }\r
}\r
\r
public partial struct Color3\r
\r
public int CompareTo(UVertex o)\r
{\r
- if(Pos.x < o.Pos.x) return -1; if(Pos.x > o.Pos.x) return 1;\r
- if(Pos.y < o.Pos.y) return -1; if(Pos.y > o.Pos.y) return 1;\r
- if(Pos.z < o.Pos.z) return -1; if(Pos.z > o.Pos.z) return 1;\r
- if(Nrm.x < o.Nrm.x) return -1; if(Nrm.x > o.Nrm.x) return 1;\r
- if(Nrm.y < o.Nrm.y) return -1; if(Nrm.y > o.Nrm.y) return 1;\r
- if(Nrm.z < o.Nrm.z) return -1; if(Nrm.z > o.Nrm.z) return 1;\r
- if(Tex.x < o.Tex.x) return -1; if(Tex.x > o.Tex.x) return 1;\r
- if(Tex.y < o.Tex.y) return -1; if(Tex.y > o.Tex.y) return 1;\r
- return mtl - o.mtl;\r
+ int cmp;\r
+ cmp = Pos.CompareTo(o.Pos); if (cmp != 0) return cmp;\r
+ cmp = Nrm.CompareTo(o.Nrm);\r
+ return cmp;\r
}\r
\r
public override int GetHashCode()\r
\r
public int CompareTo(Vertex o)\r
{\r
- if(Pos.x < o.Pos.x) return -1; if(Pos.x > o.Pos.x) return 1;\r
- if(Pos.y < o.Pos.y) return -1; if(Pos.y > o.Pos.y) return 1;\r
- if(Pos.z < o.Pos.z) return -1; if(Pos.z > o.Pos.z) return 1;\r
- if(Nrm.x < o.Nrm.x) return -1; if(Nrm.x > o.Nrm.x) return 1;\r
- if(Nrm.y < o.Nrm.y) return -1; if(Nrm.y > o.Nrm.y) return 1;\r
- if(Nrm.z < o.Nrm.z) return -1; if(Nrm.z > o.Nrm.z) return 1;\r
- if(Tex.x < o.Tex.x) return -1; if(Tex.x > o.Tex.x) return 1;\r
- if(Tex.y < o.Tex.y) return -1; if(Tex.y > o.Tex.y) return 1;\r
- if(Wgt.x < o.Wgt.x) return -1; if(Wgt.x > o.Wgt.x) return 1;\r
- if(Wgt.y < o.Wgt.y) return -1; if(Wgt.y > o.Wgt.y) return 1;\r
- if(Wgt.z < o.Wgt.z) return -1; if(Wgt.z > o.Wgt.z) return 1;\r
- if(Wgt.w < o.Wgt.w) return -1; if(Wgt.w > o.Wgt.w) return 1;\r
- if(Idx < o.Idx) return -1; if(Idx > o.Idx) return 1;\r
- return 0;\r
+ int cmp = 0;\r
+ cmp = Pos.CompareTo(o.Pos); if (cmp != 0) return cmp;\r
+ cmp = Nrm.CompareTo(o.Nrm); if (cmp != 0) return cmp;\r
+ cmp = Tex.CompareTo(o.Tex); if (cmp != 0) return cmp;\r
+ cmp = Wgt.CompareTo(o.Wgt); if (cmp != 0) return cmp;\r
+ cmp = Idx.CompareTo(o.Idx);\r
+ return cmp;\r
}\r
\r
public override int GetHashCode()\r