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 override void BuildMesh(Mesh mesh) { if (parser is VertexParser) { VertexParser p = parser as VertexParser; mesh.vertices = p.vertexs.ToArray(); mesh.triangles = p.triangles.ToArray(); } }
public IOmeLoader Create( ) { var dataStore = new DataStore(); var octreeParser = new OctreeParser(dataStore); var triangleParser = new TriangleParser(dataStore); var indexParser = new IndexParser(dataStore); var vertexParser = new VertexParser(dataStore); return(new OmeLoader(dataStore, octreeParser, triangleParser, indexParser, vertexParser)); }
public ObjLoader Create(MaterialStreamProvider materialStreamProvider) { var dataStore = new DataStore(_name); var faceParser = new FaceParser(dataStore); var groupParser = new GroupParser(dataStore); var normalParser = new NormalParser(dataStore); var textureParser = new TextureParser(dataStore); var vertexParser = new VertexParser(dataStore); var materialLibraryLoader = new MaterialLibraryLoader(dataStore); var materialLibraryLoaderFacade = new MaterialLibraryLoaderFacade(materialLibraryLoader, materialStreamProvider); var materialLibraryParser = new MaterialLibraryParser(materialLibraryLoaderFacade); var useMaterialParser = new UseMaterialParser(dataStore); return(new ObjLoader(dataStore, faceParser, groupParser, normalParser, textureParser, vertexParser, materialLibraryParser, useMaterialParser)); }
public void SetUp() { _textureDataStore = new DataStore(); _faceParser = new FaceParser(_textureDataStore); _groupParser = new GroupParser(_textureDataStore); _normalParser = new NormalParser(_textureDataStore); _textureParser = new TextureParser(_textureDataStore); _vertexParser = new VertexParser(_textureDataStore); _materialStreamProviderSpy = new MaterialStreamProviderSpy(); _materialStreamProviderSpy.StreamToReturn = CreateMemoryStreamFromString(MaterialLibraryString); _materialLibraryLoader = new MaterialLibraryLoader(_textureDataStore); _materialLibraryLoaderFacade = new MaterialLibraryLoaderFacade(_materialLibraryLoader, _materialStreamProviderSpy); _materialLibraryParser = new MaterialLibraryParser(_materialLibraryLoaderFacade); _useMaterialParser = new UseMaterialParser(_textureDataStore); _loader = new Loader.Loaders.ObjLoader(_textureDataStore, _faceParser, _groupParser, _normalParser, _textureParser, _vertexParser, _materialLibraryParser, _useMaterialParser); }
public void AddVertCoords(IEnumerable <string> vertices) { var tmpVertex = vertices.ToArray(); try { if (tmpVertex.Length != 3) { throw new ArgumentException(); } var vert3 = VertexParser.Parse(tmpVertex[0], tmpVertex[1], tmpVertex[2]); VertCoords.Add(vert3); } catch { _vertCoordsDamaged.Add(VertCoords.Count, string.Join(" ", vertices)); VertCoords.Add(Vector3.Zero); } }
public void AddTextCoords(IEnumerable <string> vertices) { string[] tmpVertex = vertices.ToArray(); try { if (tmpVertex.Length != 2 && tmpVertex.Length != 3) { throw new ArgumentException(); } Vector2 vert2 = VertexParser.Parse(tmpVertex[0], tmpVertex[1]); TexCoords.Add(vert2); } catch { texCoordsDamaged.Add(TexCoords.Count, String.Join(" ", vertices)); //Console.WriteLine(String.Join(" ", vertexes)); TexCoords.Add(Vector2.Zero); } }
public void AddNormals(IEnumerable <string> vertices) { string[] tmpVertex = vertices.ToArray(); try { if (tmpVertex.Length != 3) { throw new ArgumentException(); } Vector3 vert3 = VertexParser.Parse(tmpVertex[0], tmpVertex[1], tmpVertex[2]); Normals.Add(vert3); } catch { normalsDamaged.Add(Normals.Count, String.Join(" ", vertices)); //Console.WriteLine(String.Join(" ", vertexes)); Normals.Add(Vector3.Zero); } }
public ObjLoader( DataStore dataStore, FaceParser faceParser, GroupParser groupParser, NormalParser normalParser, TextureParser textureParser, VertexParser vertexParser, MaterialLibraryParser materialLibraryParser, UseMaterialParser useMaterialParser) { _dataStore = dataStore; SetupTypeParsers( vertexParser, faceParser, normalParser, textureParser, groupParser, materialLibraryParser, useMaterialParser); }
public void SetUp() { _vertexDataStoreMock = new VertexDataStoreMock(); _vertexParser = new VertexParser(_vertexDataStoreMock); }