コード例 #1
0
ファイル: PoseFilePage.cs プロジェクト: xvok16/TDCGExplorer
        public override void BindingStream(MemoryStream ms)
        {
            // データの複製を作る.
            streamdata = new MemoryStream();
            ZipFileUtil.CopyStream(ms, streamdata);

            ms.Seek(0, SeekOrigin.Begin);
            Bitmap savefilebitmap = new Bitmap(ms);

            posestream = new PNGPOSEStream();
            ms.Seek(0, SeekOrigin.Begin);
            posedata = posestream.LoadStream(ms);

#if false
            TDCGExplorer.TDCGExplorer.MainFormWindow.PictureBox.Image  = savefilebitmap;
            TDCGExplorer.TDCGExplorer.MainFormWindow.PictureBox.Width  = savefilebitmap.Width;
            TDCGExplorer.TDCGExplorer.MainFormWindow.PictureBox.Height = savefilebitmap.Height;
#else
            TDCGExplorer.TDCGExplorer.MainFormWindow.SetBitmap(savefilebitmap);
#endif
#if false
            TDCG.Viewer viewer = TDCGExplorer.TDCGExplorer.MainFormWindow.Viewer;
            if (posedata.scene == false)
            {
                // キャラが無い時はデフォ子
                if (TDCGExplorer.TDCGExplorer.FigureLoad == false)
                {
                    viewer.AddFigureFromPNGFile("default.tdcgsav.png", false);
                    TDCGExplorer.TDCGExplorer.FigureLoad = true;
                }
                using (MemoryStream tmo = new MemoryStream(posedata.figures[0].tmo.data))
                {
                    viewer.LoadTMOFile(tmo);
                }
            }
            else
            {
                // 全部ロードする.
                ms.Seek(0, SeekOrigin.Begin);
                viewer.AddFigureFromPNGStream(ms, false);
                TDCGExplorer.TDCGExplorer.FigureLoad = false;
            }
            List <float> camera = posedata.GetCamera();
            Vector3      eye    = new Vector3(camera[0], camera[1], camera[2]);
            Vector3      ypr    = new Vector3(camera[5], camera[4], camera[6]);
            Matrix       m      = Matrix.RotationYawPitchRoll(ypr.Y, ypr.X, ypr.Z) * Matrix.Translation(eye.X, eye.Y, eye.Z);
            viewer.Camera.Reset();
            viewer.Camera.Translation = new Vector3(-m.M41, -m.M42, m.M43);
            viewer.Camera.Angle       = ypr;

            TDCGExplorer.TDCGExplorer.MainFormWindow.setNeedCameraReset();
#endif
            // データ階層ツリーを構築する.

            MakeTreeView();
        }
コード例 #2
0
ファイル: PoseFilePage.cs プロジェクト: xvok16/TDCGExplorer
        protected override void Dispose(bool disposing)
        {
            if (streamdata != null)
            {
                streamdata.Dispose();
            }
            streamdata = null;
            if (posedata != null)
            {
                posedata.Dispose();
            }
            posedata = null;
            if (posestream != null)
            {
                posestream.Dispose();
            }
            posestream = null;

            base.Dispose(disposing);
        }