/// <summary>
        /// Creates info classes for a structure BSP
        /// </summary>
        void GenerateInfoListBsp()
        {
            string bsp_name = Path.GetFileNameWithoutExtension(tagManager.Name);

            int vertex_count, triangle_count;

            BSPInfoInternal bsp_info_internal;

            // create an info object representing the render mesh
            vertex_count   = BSP.GetVertexCount(tagManager, BSPObjectType.RenderMesh);
            triangle_count = BSP.GetTriangleCount(tagManager, BSPObjectType.RenderMesh);

            bsp_info_internal = new BSPInfoInternal();
            bsp_info_internal.SetType(BSPObjectType.RenderMesh);
            BSP.AddShaderDatums(bsp_info_internal, tagManager);
            internalInfoList.Add(bsp_info_internal);

            Add(new ColladaHalo1BSPInfo(internalInfoList.Count - 1,
                                        bsp_name,
                                        vertex_count,
                                        triangle_count,
                                        BSPObjectType.RenderMesh));

            // create an info object representing the portals mesh
            vertex_count   = BSP.GetVertexCount(tagManager, BSPObjectType.Portals);
            triangle_count = BSP.GetTriangleCount(tagManager, BSPObjectType.Portals);

            if ((vertex_count > 0) && (triangle_count > 0))
            {
                bsp_info_internal = new BSPInfoInternal();
                bsp_info_internal.SetType(BSPObjectType.Portals);
                internalInfoList.Add(bsp_info_internal);

                Add(new ColladaHalo1BSPInfo(internalInfoList.Count - 1,
                                            bsp_name,
                                            vertex_count,
                                            triangle_count,
                                            BSPObjectType.Portals));
            }

            // create an info object representing the fogplane mesh
            vertex_count   = BSP.GetVertexCount(tagManager, BSPObjectType.FogPlanes);
            triangle_count = BSP.GetTriangleCount(tagManager, BSPObjectType.FogPlanes);

            if ((vertex_count > 0) && (triangle_count > 0))
            {
                bsp_info_internal = new BSPInfoInternal();
                bsp_info_internal.SetType(BSPObjectType.FogPlanes);
                internalInfoList.Add(bsp_info_internal);

                Add(new ColladaHalo1BSPInfo(internalInfoList.Count - 1,
                                            bsp_name,
                                            vertex_count,
                                            triangle_count,
                                            BSPObjectType.FogPlanes));
            }
        }
        /// <summary>
        /// Creates info classes for a structure lightmap
        /// </summary>
        void GenerateInfoListBSP()
        {
            string name = Path.GetFileNameWithoutExtension(tagManager.Name);

            int vertex_count, triangle_count;

            BSPInfoInternal info_internal;

            vertex_count   = BSP.GetVertexCount(tagManager, BSPObjectType.RenderMesh);
            triangle_count = BSP.GetTriangleCount(tagManager, BSPObjectType.RenderMesh);

            if ((vertex_count > 0) && (triangle_count > 0))
            {
                info_internal = new BSPInfoInternal();
                info_internal.SetType(BSPObjectType.RenderMesh);

                BSP.AddShaderDatums(info_internal, tagManager);

                internalInfoList.Add(info_internal);

                Add(new ColladaHalo2BSPInfo(internalInfoList.Count - 1,
                                            name,
                                            vertex_count,
                                            triangle_count,
                                            BSPObjectType.RenderMesh));
            }

            vertex_count   = BSP.GetVertexCount(tagManager, BSPObjectType.Portals);
            triangle_count = BSP.GetTriangleCount(tagManager, BSPObjectType.Portals);

            if ((vertex_count > 0) && (triangle_count > 0))
            {
                info_internal = new BSPInfoInternal();
                info_internal.SetType(BSPObjectType.Portals);

                internalInfoList.Add(info_internal);

                Add(new ColladaHalo2BSPInfo(internalInfoList.Count - 1,
                                            name,
                                            vertex_count,
                                            triangle_count,
                                            BSPObjectType.Portals));
            }
        }