private string dir;\r
private TSOGeneratorConfig config;\r
protected MqoFile mqo;\r
- protected TSOFile tsor;\r
+ protected TSOFile tsoref;\r
protected Dictionary<string, TSONode> nodes;\r
protected List<TSOMesh> meshes;\r
private ImportInfo ii;\r
\r
private bool DoWriteNodeNames()\r
{\r
- bw.Write(tsor.nodes.Length);\r
+ bw.Write(tsoref.nodes.Length);\r
\r
nodes = new Dictionary<string,TSONode>();\r
\r
- foreach(TSONode i in tsor.nodes)\r
+ foreach(TSONode i in tsoref.nodes)\r
{\r
WriteString(bw, i.Name);\r
nodes.Add(i.ShortName, i);\r
\r
private bool DoWriteNodeMatrices()\r
{\r
- bw.Write(tsor.nodes.Length);\r
+ bw.Write(tsoref.nodes.Length);\r
\r
- foreach(TSONode i in tsor.nodes)\r
+ foreach(TSONode i in tsoref.nodes)\r
WriteMatrix(bw, i.Matrix);\r
\r
return true;\r
return true;\r
}\r
\r
- private bool DoCleanup()\r
+ protected virtual bool DoCleanup()\r
{\r
- dir = null;\r
- tsor = null;\r
- nodes = null;\r
- meshes = null;\r
- mqo = null;\r
- ii = null;\r
- bw = null;\r
- materials = null;\r
- textures = null;\r
+ dir = null;\r
+ tsoref = null;\r
+ nodes = null;\r
+ meshes = null;\r
+ mqo = null;\r
+ ii = null;\r
+ bw = null;\r
+ materials = null;\r
+ textures = null;\r
\r
System.GC.Collect();\r
return true;\r
protected override bool DoLoadRefTSO(string tsoref_file)\r
{\r
// 参照TSOロード\r
- tsor = LoadTSO(tsoref_file);\r
+ tsoref = LoadTSO(tsoref_file);\r
return true;\r
}\r
\r
\r
private void CreatePointCluster(TSOFile tso)\r
{\r
- vlst= new List<Vertex>();\r
+ vlst = new List<Vertex>();\r
\r
- foreach(TSOMesh i in tso.meshes)\r
- foreach(TSOSubMesh j in i.sub)\r
- vlst.AddRange(j.vertices);\r
+ foreach (TSOMesh i in tso.meshes)\r
+ foreach (TSOSubMesh j in i.sub)\r
+ vlst.AddRange(j.vertices);\r
\r
- pc = new PointCluster(vlst.Count);\r
+ pc = new PointCluster(vlst.Count);\r
\r
- foreach(Vertex i in vlst)\r
+ foreach (Vertex i in vlst)\r
pc.Add(i.Pos.x, i.Pos.y, i.Pos.z);\r
\r
pc.Clustering();\r
}\r
\r
- protected override bool DoLoadRefTSO(string tsoref)\r
+ protected override bool DoLoadRefTSO(string tsoref_file)\r
{\r
// 参照TSOロード\r
- tsor = LoadTSO(tsoref);\r
-\r
- foreach(TSOMesh i in tsor.meshes)\r
- foreach(TSOSubMesh j in i.sub)\r
- {\r
- int[] bones = j.bones;\r
+ tsoref = LoadTSO(tsoref_file);\r
\r
- for(int k= 0, n= j.numvertices; k < n; ++k)\r
+ foreach (TSOMesh i in tsoref.meshes)\r
+ foreach (TSOSubMesh j in i.sub)\r
{\r
- // ボーンをグローバルな番号に変換\r
- uint idx0= j.vertices[k].Idx;\r
- byte* idx = (byte*)(&idx0);\r
- idx[0] = (byte)bones[idx[0]];\r
- idx[1] = (byte)bones[idx[1]];\r
- idx[2] = (byte)bones[idx[2]];\r
- idx[3] = (byte)bones[idx[3]];\r
- j.vertices[k].Idx = idx0;\r
+ int[] bones = j.bones;\r
+\r
+ for (int k = 0, n = j.numvertices; k < n; ++k)\r
+ {\r
+ // ボーンをグローバルな番号に変換\r
+ uint idx0 = j.vertices[k].Idx;\r
+ byte* idx = (byte*)(&idx0);\r
+ idx[0] = (byte)bones[idx[0]];\r
+ idx[1] = (byte)bones[idx[1]];\r
+ idx[2] = (byte)bones[idx[2]];\r
+ idx[3] = (byte)bones[idx[3]];\r
+ j.vertices[k].Idx = idx0;\r
+ }\r
}\r
- }\r
\r
- CreatePointCluster(tsor);\r
+ CreatePointCluster(tsoref);\r
return true;\r
}\r
\r
return true;\r
}\r
\r
+ protected override bool DoCleanup()\r
+ {\r
+ pc = null;\r
+ vlst = null;\r
+ return base.DoCleanup();\r
+ }\r
}\r
\r
public class TextureInfo\r