OSDN Git Service

refactored. GetHashCode
[tdcgexplorer/tso2mqo.git] / TSOFile.cs
index 75a1195..f0ec1cc 100644 (file)
@@ -30,7 +30,7 @@ namespace Tso2MqoGui
             System.Diagnostics.Debug.WriteLine(s);\r
         }\r
 \r
-        static void ExchangeChannel(byte[] data, int depth)\r
+        public static void ExchangeChannel(byte[] data, int depth)\r
         {\r
             for(int j= 0; j < data.Length; j+=depth)\r
             {\r
@@ -158,9 +158,6 @@ namespace Tso2MqoGui
             count                           = r.ReadInt32();\r
             meshes                          = new TSOMesh[count];\r
             int             check           = 0;\r
-#if true\r
-            bool    debug   = false;\r
-#endif\r
             for(int i= 0; i < count; ++i)\r
             {\r
                 meshes[i]                   = new TSOMesh();\r
@@ -191,22 +188,11 @@ namespace Tso2MqoGui
 \r
                     for(int k= 0; k < meshes[i].sub[j].numvertices; ++k)\r
                     {\r
-                        if(debug)\r
-                        {\r
-                            WriteLine(r.BaseStream.Position.ToString("X"));\r
-                            ReadVertexDebug(ref v[k]);\r
-                        } else\r
-                        {\r
-                            ReadVertex(ref v[k]);\r
-                        }\r
+                        ReadVertex(ref v[k]);\r
                     }\r
 \r
                     WriteLine(r.BaseStream.Position.ToString("X"));\r
                     System.Diagnostics.Debug.WriteLine(r.BaseStream.Position.ToString("X"));\r
-#if DEBUG\r
-                    if(r.BaseStream.Position == 0x61F94)\r
-                        debug   = true;\r
-#endif\r
                 }\r
             }\r
 \r
@@ -587,22 +573,10 @@ namespace Tso2MqoGui
         public override string ToString()\r
         {\r
             StringBuilder   sb  = new StringBuilder();\r
-            sb.Append("[").Append(M11).Append(", ")\r
-                          .Append(M12).Append(", ")\r
-                          .Append(M13).Append(", ")\r
-                          .Append(M14).Append("], ")\r
-              .Append("[").Append(M21).Append(", ")\r
-                          .Append(M22).Append(", ")\r
-                          .Append(M23).Append(", ")\r
-                          .Append(M24).Append("], ")\r
-              .Append("[").Append(M31).Append(", ")\r
-                          .Append(M32).Append(", ")\r
-                          .Append(M33).Append(", ")\r
-                          .Append(M34).Append("], ")\r
-              .Append("[").Append(M41).Append(", ")\r
-                          .Append(M42).Append(", ")\r
-                          .Append(M43).Append(", ")\r
-                          .Append(M44).Append("]");\r
+            sb.AppendFormat("[{0:F4}, {1:F4}, {2:F4}, {3:F4}], ",  M11, M12, M13, M14)\r
+              .AppendFormat("[{0:F4}, {1:F4}, {2:F4}, {3:F4}], ",  M21, M22, M23, M24)\r
+              .AppendFormat("[{0:F4}, {1:F4}, {2:F4}, {3:F4}], ",  M31, M32, M33, M34)\r
+              .AppendFormat("[{0:F4}, {1:F4}, {2:F4}, {3:F4}]",    M41, M42, M43, M44);\r
             return sb.ToString();\r
         }\r
 \r
@@ -655,29 +629,19 @@ namespace Tso2MqoGui
 \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
         {\r
-            return Pos.x.GetHashCode() ^ Pos.y.GetHashCode() ^ Pos.z.GetHashCode()\r
-                 ^ Nrm.x.GetHashCode() ^ Nrm.y.GetHashCode() ^ Nrm.z.GetHashCode()\r
-                 ^ Tex.x.GetHashCode() ^ Tex.y.GetHashCode() ^ Wgt.w.GetHashCode()\r
-                 ^ Wgt.x.GetHashCode() ^ Wgt.y.GetHashCode() ^ Wgt.z.GetHashCode()\r
-                 - Idx.GetHashCode();\r
+            return Pos.GetHashCode() ^ Nrm.GetHashCode() ^ Tex.GetHashCode()\r
+                 ^ Wgt.GetHashCode() ^ Idx.GetHashCode();\r
         }\r
 \r
         public override bool Equals(object obj)\r