private void ConvertMap(string _SourceFileName, string _TargetFileName) { idTech5Map.Map Map = new idTech5Map.Map(_SourceFileName); // Convert GCXFormat.Scene Scene = new GCXFormat.Scene(Map); // Save using (FileStream S = new FileInfo(_TargetFileName).Create()) using (BinaryWriter W = new BinaryWriter(S)) Scene.Save(W); // Update log int MeshesCount = 0; int LightsCount = 0; int CamerasCount = 0; int ProbesCount = 0; int GenericsCount = 0; foreach (GCXFormat.Scene.Node Node in Scene.m_Nodes) { switch (Node.m_Type) { case GCXFormat.Scene.Node.TYPE.MESH: MeshesCount++; break; case GCXFormat.Scene.Node.TYPE.LIGHT: LightsCount++; break; case GCXFormat.Scene.Node.TYPE.CAMERA: CamerasCount++; break; case GCXFormat.Scene.Node.TYPE.PROBE: ProbesCount++; break; case GCXFormat.Scene.Node.TYPE.GENERIC: GenericsCount++; break; } } string TextTextures = ""; int TexturesCount = 0; // foreach ( GCXFormat.Scene.Material Material in Scene.m_Materials ) { // if ( Material.m_DiffuseTextureID ) // } string Text = "Nodes count: " + Scene.m_Nodes.Count + "\r\n" + " > Meshes count: "+ MeshesCount + "\r\n" + " > Lights count: "+ LightsCount + "\r\n" + " > Cameras count: "+ CamerasCount + "\r\n" + " > Probes count: "+ ProbesCount + "\r\n" + " > Generics count: "+ GenericsCount + "\r\n" + "\r\n" + "Total vertices: " + Scene.m_TotalVerticesCount + " - Total faces: " + Scene.m_TotalFacesCount + "\r\n" + "\r\n" + "Materials count: " + Scene.m_Materials.Count + "\r\n" + "Textures count: " + TexturesCount + "\r\n" + TextTextures; textBoxLog.Text = Text; }
/// <summary> /// Convert from idTech5 map /// </summary> /// <param name="_Map"></param> public Scene(idTech5Map.Map _Map) { // Create nodes m_RootNode = new Node(this, _Map); // Create materials foreach (idTech5Map.Material M in idTech5Map.Material.ms_Materials) { m_Materials.Add(new Material(M)); } }
private void ConvertMap( string _SourceFileName, string _TargetFileName ) { idTech5Map.Map Map = new idTech5Map.Map( _SourceFileName ); // Convert GCXFormat.Scene Scene = new GCXFormat.Scene( Map ); // Save using ( FileStream S = new FileInfo( _TargetFileName ).Create() ) using ( BinaryWriter W = new BinaryWriter( S ) ) Scene.Save( W ); // Update log int MeshesCount = 0; int LightsCount = 0; int CamerasCount = 0; int ProbesCount = 0; int GenericsCount = 0; foreach ( GCXFormat.Scene.Node Node in Scene.m_Nodes ) { switch ( Node.m_Type ) { case GCXFormat.Scene.Node.TYPE.MESH: MeshesCount++; break; case GCXFormat.Scene.Node.TYPE.LIGHT: LightsCount++; break; case GCXFormat.Scene.Node.TYPE.CAMERA: CamerasCount++; break; case GCXFormat.Scene.Node.TYPE.PROBE: ProbesCount++; break; case GCXFormat.Scene.Node.TYPE.GENERIC: GenericsCount++; break; } } string TextTextures = ""; int TexturesCount = 0; // foreach ( GCXFormat.Scene.Material Material in Scene.m_Materials ) { // if ( Material.m_DiffuseTextureID ) // } string Text = "Nodes count: " + Scene.m_Nodes.Count + "\r\n" + " > Meshes count: " + MeshesCount + "\r\n" + " > Lights count: " + LightsCount + "\r\n" + " > Cameras count: " + CamerasCount + "\r\n" + " > Probes count: " + ProbesCount + "\r\n" + " > Generics count: " + GenericsCount + "\r\n" + "\r\n" + "Total vertices: " + Scene.m_TotalVerticesCount + " - Total faces: " + Scene.m_TotalFacesCount + "\r\n" + "\r\n" + "Materials count: " + Scene.m_Materials.Count + "\r\n" + "Textures count: " + TexturesCount + "\r\n" + TextTextures; textBoxLog.Text = Text; }
// public Node(Scene _Owner, idTech5Map.Map _Map) { m_Owner = _Owner; m_Owner.m_Nodes.Add(this); List <Node> Children = new List <Node>(); foreach (idTech5Map.Map.Entity E in _Map.m_Entities) { switch (E.m_Type) { case idTech5Map.Map.Entity.TYPE.MODEL: { Node Child = new Mesh(_Owner, E); Child.m_Type = TYPE.MESH; Children.Add(Child); break; } case idTech5Map.Map.Entity.TYPE.LIGHT: { Node Child = new Light(_Owner, E); Child.m_Type = TYPE.LIGHT; Children.Add(Child); break; } case idTech5Map.Map.Entity.TYPE.PLAYER_START: { Node Child = new Camera(_Owner, E); Child.m_Type = TYPE.CAMERA; Children.Add(Child); break; } case idTech5Map.Map.Entity.TYPE.PROBE: { Node Child = new Node(_Owner, E); Child.m_Type = TYPE.PROBE; Children.Add(Child); break; } case idTech5Map.Map.Entity.TYPE.UNKNOWN: case idTech5Map.Map.Entity.TYPE.REF_MAP: // Don't care... break; } } m_Children = Children.ToArray(); }