Beispiel #1
0
        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;
        }
Beispiel #2
0
        /// <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));
            }
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
            //
            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();
            }