private void ParseLine(string keyword, string data) { switch (keyword) { case "v": if (isLastLineAFace) { graphObject.Groups.Add(group); group = new Group(); isLastLineAFace = false; } group.Vertices.Add(VertexParser.Parse(data)); break; case "vt": group.VertexTextures.Add(VertexTextureParser.Parse(data)); break; case "vn": group.VertexNormals.Add(VertexNormalParser.Parse(data)); break; case "f": group.Faces.Add(FaceParser.Parse(data)); isLastLineAFace = true; break; default: break; } }
public IWavefrontObjLoader Create(IMaterialStreamProvider materialStreamProvider) { var dataStore = new DataStore(); var faceParser = new FaceParser(dataStore); var groupParser = new GroupParser(dataStore); var normalParser = new VertexNormalParser(dataStore); var textureParser = new TextureCoordinateParser(dataStore); var vertexParser = new GeometricVertexParser(dataStore); var materialLibraryLoader = new MaterialLibraryLoader(dataStore); var materialLibraryLoaderFacade = new MaterialLibraryLoaderFacade(materialLibraryLoader, materialStreamProvider); var materialLibraryParser = new MaterialLibraryParser(materialLibraryLoaderFacade); var useMaterialParser = new UseMaterialParser(dataStore); return(new WavefrontObjLoader(dataStore, faceParser, groupParser, normalParser, textureParser, vertexParser, materialLibraryParser, useMaterialParser)); }