/// <summary> /// 指定ストリームからTSOFileを読み込みます。 /// </summary> /// <param name="source_stream">ストリーム</param> public void LoadTSOFile(Stream source_stream) { List <TSOFile> tso_list = new List <TSOFile>(); try { TSOFile tso = new TSOFile(); tso.Load(source_stream); Debug.WriteLine("tso sum vertices count: " + tso.SumVerticesCount().ToString()); tso_list.Add(tso); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } Figure fig = GetSelectedOrCreateFigure(); foreach (TSOFile tso in tso_list) { tso.Open(device, effect); fig.AddTSO(tso); } fig.UpdateNodeMapAndBoneMatrices(); if (FigureEvent != null) { FigureEvent(this, EventArgs.Empty); } }
/// <summary> /// 指定ディレクトリからフィギュアを作成して追加します。 /// </summary> /// <param name="source_file">TSOFileを含むディレクトリ</param> public void AddFigureFromTSODirectory(string source_file) { List <TSOFile> tso_list = new List <TSOFile>(); try { string[] files = Directory.GetFiles(source_file, "*.TSO"); foreach (string file in files) { TSOFile tso = new TSOFile(); Debug.WriteLine("loading " + file); tso.Load(file); Debug.WriteLine("tso sum vertices count: " + tso.SumVerticesCount().ToString()); tso_list.Add(tso); } } catch (Exception ex) { Console.WriteLine("Error: " + ex); } Figure fig = new Figure(); foreach (TSOFile tso in tso_list) { tso.Open(device, effect); fig.AddTSO(tso); } fig.UpdateNodeMapAndBoneMatrices(); int idx = FigureList.Count; FigureList.Add(fig); SetFigureIndex(idx); if (FigureEvent != null) { FigureEvent(this, EventArgs.Empty); } }