/// <summary> /// Agrega El/Los materiales, cambia el tipo de VertexElement /// </summary> /// <param name="objMaterialLoader">Clase ObjMaterialLader</param> /// <returns>MeshBuilder</returns> public MeshBuilder AddMaterials(ObjMaterialsLoader objMaterialLoader) { //create material // TODO MaterialsArray = new List <TgcObjMaterialAux>(); objMaterialLoader.ListObjMaterialMesh.ForEach((objMaterialMesh => { MaterialsArray.Add(createTextureAndMaterial(objMaterialMesh, objMaterialLoader.currentDirectory)); } )); //set nueva mesh strategy ChargueBufferStrategy = new ChargueBufferDiffuseMapStrategy(); // TODO ver que pasa caundo viene ligthmap return(this); }
public TgcObjLoader() { Strategies = new List <ObjParseStrategy>(); Strategies.Add(new AddShadowStrategy()); Strategies.Add(new AddUsemtlStrategy()); Strategies.Add(new CreateNewMeshStrategy()); Strategies.Add(new CreateNormalStrategy()); Strategies.Add(new CreateFaceStrategy()); Strategies.Add(new CreateTextCoordStrategy()); Strategies.Add(new CreateVertexStrategy()); Strategies.Add(new NoOperationStrategy()); ListMtllib = new List <string>(); MeshBuilder = new MeshBuilder(); ObjMaterialsLoader = new ObjMaterialsLoader(); ObjMeshContainer = new ObjMeshContainer(); }
public void GetListOfMaterials(string[] lines, string path) { //se obtiene puramente todas las lineas que son de material var linesFiltered = FilterByKeyword(lines, MTLLIB); //nos fijamos si tiene material if (linesFiltered.Length == 0) { return; } //agregamos la ruta de la carpeta donde se encuentran los materiales ObjMaterialsLoader.SetDirectoryPathMaterial(path); // foreach (var line in linesFiltered) { SetMtllib(line); } //Se hace parse de los materiales ObjMaterialsLoader.LoadMaterialsFromFiles(path, ListMtllib); //TODO ver si devuelve una lista de materiales o le pasamos el objmesh como parametro // MeshBuilder.AddMaterials(ObjMaterialsLoader); }