Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }