Example #1
0
        /// <summary>
        /// Gets a WMO_Sub from the WMO Group file
        /// </summary>
        /// <param name="fileName">Full Filename of the WMO_Sub</param>
        /// <returns></returns>
        private static TriangleList LoadWMOSub(string fileName)
        {
            var path = fileName;
            var fileInfo = FileInfoFactory.Create();
            if (fileInfo.Exists(path) == false)
                throw new Exception(String.Format("File does not exist: {0}", path));

            using (var reader = new BinaryReader(fileInfo.OpenRead(path)))
            {
                var indices = new MOVIChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MOVI").StartPosition).Parse();
                var vectors = new MOVTChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MOVT").StartPosition).Parse();
                var normals = new MONRChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MONR").StartPosition).Parse();
                var vertices = new List<VertexPositionNormalColored>();
                for (var i = 0; i < vectors.Count; i++)
                {
                    vertices.Add(new VertexPositionNormalColored(vectors[i], Color.Yellow, normals[i]));
                }
                return new TriangleList(indices, vertices);
            }
        }
Example #2
0
        /// <summary>
        /// Gets a WMO_Sub from the WMO Group file
        /// </summary>
        /// <param name="fileName">Full Filename of the WMO_Sub</param>
        /// <returns></returns>
        private static TriangleList LoadWMOSub(string fileName)
        {
            var path     = fileName;
            var fileInfo = FileInfoFactory.Create();

            if (fileInfo.Exists(path) == false)
            {
                throw new Exception(String.Format("File does not exist: {0}", path));
            }

            using (var reader = new BinaryReader(fileInfo.OpenRead(path)))
            {
                var indices  = new MOVIChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MOVI").StartPosition).Parse();
                var vectors  = new MOVTChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MOVT").StartPosition).Parse();
                var normals  = new MONRChunkParser(reader, FileChunkHelper.SearchChunk(reader, "MONR").StartPosition).Parse();
                var vertices = new List <VertexPositionNormalColored>();
                for (var i = 0; i < vectors.Count; i++)
                {
                    vertices.Add(new VertexPositionNormalColored(vectors[i], Color.Yellow, normals[i]));
                }
                return(new TriangleList(indices, vertices));
            }
        }