Modificación de codigo.

Modificación de codigo.

Hemos recibido la siguiente petición de ayuda:


Para empezar seria genial si a la proxima pudieras postear tu codigo en la plataforma para poder verlo mejor! Registrate ahora para que te podamos ayudar mas facilmente!


Respuesta

Para leer archivos .obj con diferentes números de aristas en las caras, deberás adaptar la lógica del código para manejar las diferentes configuraciones. Actualmente, el código está diseñado para leer archivos que solo contienen caras con tres aristas.


Para adaptar el código, podrías agregar una verificación para cada línea que empieza con "f" para determinar la cantidad de aristas en cada cara y crear un vector de Edges dinámicamente en consecuencia. Algo así:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
if(elems[0] == "f")
{
    int num_edges = elems.size() - 1;
    vector<Edge> edges;
    for(int i=0; i<num_edges; i++){
        string v = split(elems[i+1], "/")[0];
        unsigned long ind_v = stol(v) - 1;
        edges.push_back(vertices[ind_v]);
    }
    Face f(edges);
    this->faces.push_back(f);
}

En este caso, se crea un vector dinámicamente para almacenar los Edges de la cara en función del número de aristas que tenga. Además, se crea la Face con el vector de Edges creado.


Recuerda también que debes actualizar la definición de la clase Face para aceptar cualquier número de aristas.


Master

Professional Title

Reactions

0

0

0

0

Access hereTo be able to comment

TheWhiteCode.com is not the creator or owner of the images shown, references are: