Vergelijk commits

...

4 Commits

Auteur SHA1 Bericht Datum
tTh
e2188897cf minimal explanation 2023-04-22 18:42:25 +02:00
tTh
50d83a6ce2 output file in current directory 2023-04-22 18:41:34 +02:00
tTh
1ff0230d15 cosmetic 2023-04-22 18:40:37 +02:00
tTh
c0be70d32a oups.. 2023-04-22 10:31:50 +02:00
3 gewijzigde bestanden met toevoegingen van 29 en 11 verwijderingen

Bestand weergeven

@ -18,14 +18,33 @@ Première étape : en lisant les vertices, nous saurons positionner
nos bubulles. Ensuite, en explorant les faces, nous pouvons nos bubulles. Ensuite, en explorant les faces, nous pouvons
en déduire les arètes (aka: edges). en déduire les arètes (aka: edges).
Et à partir de cette analyse, nous allons générer un fichier
binaire contenant les points xyx, et les arêtes pointA-pointB.
Le format de ce fichier doit être considéré //opaque//.
il sera généré dans le $PWD avec le nom du fichier .OBJ mais
avec l'extension .evblob.
Ce n'est qu'une première étape, d'autres formats de sortie
pourront être implémentés.
Attention, mon parser EXIGE des fichiers Unix bien conformés : Attention, mon parser EXIGE des fichiers Unix bien conformés :
c'est-à-dire que la dernière ligne du `.obj` DOIT être terminée c'est-à-dire que la dernière ligne du `.obj` DOIT être terminée
par un newline ! par un newline !
## export_evblob & bla.awk
Deuxième étape : À partir du fichier .evblob généré à l'étape
précédente, nous allons créer (entre autres options ?)
un fichier utilisable par Povray. La première option a été
la génération des arêtes, nous aurons donc sur `stdout`
six nombres réels: xyz(pointA) et xyz(pointB).
Et là, c'est trop facile, Unix le fait depuis quarante ans.
Un petit [script Awk](./edges2cylinders.awk) fera l'affaire.
## TODO LIST ## TODO LIST
* Songer à un système d'auto-scaler et de recentrage * Songer à un système d'auto-scaler et de recentrage
* Import/export en blob du combo "edges & vertices"
* Comment générer un `.obj` à partir d'une image flottante ? * Comment générer un `.obj` à partir d'une image flottante ?
* Gérer les arêtes de longueur nulle (degenerated cylinder) * Gérer les arêtes de longueur nulle (degenerated cylinder)

Bestand weergeven

@ -11,6 +11,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <libgen.h> /* for basename(3) */
#include "../bubulles.h" #include "../bubulles.h"
#include "../edges.h" #include "../edges.h"
@ -179,7 +180,7 @@ float x, y, z;
int foo, tokenid; int foo, tokenid;
Bubulle bubulle; Bubulle bubulle;
char *outfname; char *outfname, *baseptr;
#if DEBUG_LEVEL #if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( '%s' ... %d )\n\n", __func__, infname, notused); fprintf(stderr, ">>> %s ( '%s' ... %d )\n\n", __func__, infname, notused);
@ -327,10 +328,13 @@ if (outstyle) { /* two ascii files */
} }
else { /* one 'evblob' file */ else { /* one 'evblob' file */
strcpy(outfname, infname); strcpy(outfname, infname);
cptr = rindex(outfname, '.'); /* see manpage basename(3) */
baseptr = basename(outfname);
// fprintf(stderr, "baseptr -> [%s]\n", baseptr);
cptr = rindex(baseptr, '.');
strcpy(cptr, ".evblob"); strcpy(cptr, ".evblob");
fprintf(stderr, "outfname [%s]\n", outfname); // fprintf(stderr, "baseptr-> [%s]\n", baseptr);
foo = x_write_vertedges(outfname, bublist, edges); foo = x_write_vertedges(baseptr, bublist, edges);
if (foo) { if (foo) {
fprintf(stderr, "Err #%d when writing edges&vertices file\n", foo); fprintf(stderr, "Err #%d when writing edges&vertices file\n", foo);
} }

Bestand weergeven

@ -9,7 +9,7 @@
#include "../bubulles.h" #include "../bubulles.h"
#include "../edges.h" #include "../edges.h"
#include "./objtrucs.h" #include "objtrucs.h"
int verbosity = 0; int verbosity = 0;
@ -27,11 +27,6 @@ if (2 != argc) {
verbosity = 0; verbosity = 0;
/*
fname = basename(argv[1]);
fprintf (stderr, "input file name is '%s'\n", fname);
*/
foo = try_to_read_an_OBJ_file(argv[1], 0); foo = try_to_read_an_OBJ_file(argv[1], 0);
fprintf(stderr, "try to read '%s' -> %d\n", argv [1], foo); fprintf(stderr, "try to read '%s' -> %d\n", argv [1], foo);