OSDN Git Service

refactored. CompareTo
[tdcgexplorer/tso2mqo.git] / General.cs
index 9b5945a..ef94d70 100644 (file)
@@ -1,12 +1,10 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.Text;\r
-using Microsoft.DirectX;\r
-using Microsoft.DirectX.Direct3D;\r
 \r
 namespace Tso2MqoGui\r
 {\r
-    public partial struct Point2\r
+    public partial struct Point2 : IComparable<Point2>\r
     {\r
         public float x, y;\r
 \r
@@ -23,9 +21,24 @@ namespace Tso2MqoGui
         {\r
             return X+","+Y;\r
         }\r
+\r
+        public static Point2    Parse(string[] t, int  begin)\r
+        {\r
+            return new Point2(\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
@@ -73,9 +86,26 @@ namespace Tso2MqoGui
             d           = (float)(1 / (Math.Sqrt(d)));\r
             return new Point3(p.x*d, p.y*d, p.z*d);\r
         }\r
+\r
+        public static Point3    Parse(string[] t, int  begin)\r
+        {\r
+            return new Point3(\r
+                float.Parse(t[begin+0]),\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
@@ -96,6 +126,16 @@ namespace Tso2MqoGui
         {\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
@@ -117,10 +157,7 @@ namespace Tso2MqoGui
         {\r
             return R+","+G+","+B;\r
         }\r
-    }\r
 \r
-    public partial struct Color3\r
-    {\r
         public static Color3    Parse(string[] t, int  begin)\r
         {\r
             return new Color3(\r
@@ -129,25 +166,4 @@ namespace Tso2MqoGui
                 float.Parse(t[begin+2]));\r
         }\r
     }\r
-\r
-    public partial struct Point2\r
-    {\r
-        public static Vector2 Parse(string[] t, int begin)\r
-        {\r
-            return new Vector2(\r
-                float.Parse(t[begin+0]),\r
-                float.Parse(t[begin+1]));\r
-        }\r
-    }\r
-\r
-    public partial struct Point3\r
-    {\r
-        public static Vector3 Parse(string[] t, int begin)\r
-        {\r
-            return new Vector3(\r
-                float.Parse(t[begin+0]),\r
-                float.Parse(t[begin+1]),\r
-                float.Parse(t[begin+2]));\r
-        }\r
-    }\r
 }\r