Compare commits
4 Commits
c2b9a31c93
...
e2188897cf
Author | SHA1 | Date | |
---|---|---|---|
|
e2188897cf | ||
|
50d83a6ce2 | ||
|
1ff0230d15 | ||
|
c0be70d32a |
@ -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)
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user