/// <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); } }
/// <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)); } }