Пример #1
0
        public void DisplayTso()
        {
            if (fDisplayed)
            {
                return;
            }
            fDisplayed = true;

            // ヘビーセーブとして読み込んでみる.
            pngstream = new PNGHSAVStream();
            savedata.Seek(0, SeekOrigin.Begin);
            pngstream.LoadPNGFile(savedata);

            // ヘビーセーブか?
            if (pngstream.count > 0)
            {
                // ヘビーセーブデータをロードする.
                foreach (PNGTsoData tso in pngstream.get)
                {
                    tsoDataList.Add(tso);
                }
            }
            else
            {
                // tsoロード情報があるならこの時点で組み立てる.
                if (loadtsoinfo.Count != 0)
                {
                    assembleTsoData();
                }
            }

            TDCGExplorer.TDCGExplorer.SetToolTips(TextResource.RenderingNow);

            try
            {
                // TSOビューワをリセットする
                TDCGExplorer.TDCGExplorer.MainFormWindow.makeTSOViwer();
                TDCGExplorer.TDCGExplorer.MainFormWindow.clearTSOViewer();

                TDCG.Viewer viewer = TDCGExplorer.TDCGExplorer.MainFormWindow.Viewer;

                bool firstTmoSet = true;
                foreach (PNGTsoData tso in tsoDataList)
                {
                    using (MemoryStream stream = new MemoryStream(tso.tsodata))
                    {
                        viewer.LoadTSOFile(stream);
                        TDCGExplorer.TDCGExplorer.MainFormWindow.doInitialTmoLoad();
                        if (firstTmoSet)
                        {
                            // スライダーパラメータを設定する.
                            TDCG.Figure figure = viewer.FigureList[0];
                            figure.slide_matrices.BustRatio  = savefile.GetSlider(0);
                            figure.slide_matrices.TallRatio  = savefile.GetSlider(1);
                            figure.slide_matrices.ArmRatio   = savefile.GetSlider(2);
                            figure.slide_matrices.LegRatio   = savefile.GetSlider(3);
                            figure.slide_matrices.WaistRatio = savefile.GetSlider(4);
                            figure.slide_matrices.EyeRatio   = savefile.GetSlider(5);
                            figure.UpdateBoneMatrices(true);
                            firstTmoSet = false;
                        }
                        viewer.FrameMove();
                        viewer.Render();

                        TDCGExplorer.TDCGExplorer.IncBusy();
                        Application.DoEvents();
                        TDCGExplorer.TDCGExplorer.DecBusy();
                    }
                }
            }
            catch (Exception)
            {
            }
            TDCGExplorer.TDCGExplorer.SetToolTips(TextResource.RenderingComplete);
        }