Bonjour,
j'ai un fichier .off (enregistrement d'une modélisation OpenGL). Elle se compose ainsi :
- 1e ligne : OFF
- 2e ligne : nb_de_sommets nb_de_polygones
- nb_de_sommets lignes : 1e_dim ... ne_dim
- nb_de_polygones lignes : dim 1e_sommet ... pe_sommet [couleur_RVB + alpha]
Pour les sommets, les coordonnées sont en float et pour les polygones, ce sont des int (a part les informations de couleur qui sont des float).
Je voudrais récupérer les infos dans 3 matrices :
- 1e : sommets
- 2e : polygones
- 2e : couleurs
Je fais donc dans un 1e temps un parcours séquentiel ligne par ligne, donc ca me place le contenu dans un char*. Puis pour chaque ligne, j'aimerais récupérer les valeurs afin de les placer dans les matrices. Cependant ce sont des char*, et il me faut les convertir en float. Apparemment je dois chercher du côté strtof.
Cependant je me pose la question comment faire :
- 1e proposition : parcourir la chaîne jusqu'a trouver l'espace, allouer un tableau de la bonne taille, y placer la valeur en char* (2e parcours), puis la convertir pour la placer dans la matrice.
- 2e proposition : déclarer un pointeur, parcourir la chaîne jusqu'à trouver l'espace tout en allouant et réallouant dynamiquement et en y plaçant la valeur (je ne sais pas du tout si c'est possible en C (possible en C++ si mes souvenir sont bons))
- 3 e proposistion : une technique qui permet de placer les différentes valeurs de la chaine dans un tableau de float par ex, mais ça je ne sais pas comment.
Merci d'éclairer ma lanterne
Partager