예제 #1
0
파일: Form1.cs 프로젝트: Sadral/TRRM
        private void filesTV_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = filesTV.SelectedNode;

            if (node.Tag is PackedFile)
            {
                PackedFile file = node.Tag as PackedFile;
                switch (file.GetFileType())
                {
                case TRFileType.GEO:
                    showGEO(file);
                    break;

                case TRFileType.DDS:
                case TRFileType.TGA:
                case TRFileType.JPG:
                    showImage(file);
                    break;

                default:
                    Console.WriteLine("No handling available for {0} files", file.GetFileType());
                    break;
                }
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: Sadral/TRRM
        private void showGEO(PackedFile geoFile)
        {
            if (geoFile.GetFileType() != TRFileType.GEO)
            {
                return;
            }

            using (MemoryStream memory = new MemoryStream(geoFile.GetContents()))
            {
                try
                {
                    ChunkFile chunkie = new ChunkFile();
                    if (chunkie.Load(memory))
                    {
                        GBODChunk gbod   = chunkie.Chunks[0] as GBODChunk;
                        var       meshes = Viewer.ModelCreator.Generate(gbod, viewer3D.DX);
                        viewer3D.DisplayMeshes(meshes);
                        return;
                    }
                } catch (Exception)
                {
                }
                MessageBox.Show("Failed to load geometry file");
            }
        }