Compare commits

...

4 Commits

Author SHA1 Message Date
166dc651b4 more bugs 2020-06-05 10:57:43 +02:00
af35f158cd clean structure before use 2020-06-05 10:54:20 +02:00
b9919b09e5 more magic 2020-06-05 10:50:33 +02:00
a8e9418d18 better #define MUST_BORT 2020-06-05 10:49:38 +02:00
6 changed files with 41 additions and 23 deletions

2
.gitignore vendored
View File

@ -6,7 +6,7 @@ tbb
gmon.out gmon.out
dummy-file dummy-file
tools/covid-19.obj tools/*.obj
tools/read_obj tools/read_obj
tools/xyz tools/xyz

View File

@ -10,7 +10,7 @@
CC = gcc CC = gcc
OPT = -Wall -g -DDEBUG_LEVEL=0 -DMUST_ABORT OPT = -Wall -g -DDEBUG_LEVEL=0 -DMUST_ABORT=0
libbubulles.a: bubulles.o importobj.o libbubulles.a: bubulles.o importobj.o
ar r $@ $? ar r $@ $?

View File

@ -45,7 +45,7 @@ Bubulle *array;
fprintf(stderr, "+++ %s '%s' %d 0x%X\n", __func__, name, sz, unused); fprintf(stderr, "+++ %s '%s' %d 0x%X\n", __func__, name, sz, unused);
#endif #endif
if (NULL==(bblptr = malloc(sizeof(BBList)))) { if (NULL==(bblptr = calloc(1, sizeof(BBList)))) {
fprintf(stderr, "no mem available in %s\n", __func__); fprintf(stderr, "no mem available in %s\n", __func__);
return NULL; return NULL;
} }
@ -142,17 +142,13 @@ fprintf(stderr, "XYZ %f %f %f\n", what->p.x, what->p.y, what->p.z);
if (where->fidx > where->size) { if (where->fidx > where->size) {
/* this is a very bad fatal error */ /* this is a very bad fatal error */
fprintf(stderr, "%s : overflow in BBList at %p\n", __func__, where); fprintf(stderr, "%s : overflow in BBList at %p\n", __func__, where);
#if MUST_ABORT
abort(); abort();
}
if (where->fidx > where->size) {
/* array is full */
#if DEBUG_LEVEL
fprintf(stderr, "%s : array of %p is full\n", __func__, where);
#endif #endif
return -1; return -1;
} }
memcpy(&where->bbs[where->fidx], what, sizeof(Bubulle)); memcpy(&where->bbs[where->fidx], what, sizeof(Bubulle));
where->fidx++; where->fidx++;

View File

@ -21,7 +21,9 @@ int try_to_read_an_OBJ_file(char *fname, int notused)
FILE *fpin; FILE *fpin;
char line[LINE_SZ+1], *cptr; char line[LINE_SZ+1], *cptr;
float x, y, z; float x, y, z;
int foo; int foo, nbre;
BBList *bublist;
Bubulle bubulle;
#if DEBUG_LEVEL #if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, fname, notused); fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, fname, notused);
@ -32,6 +34,14 @@ if (NULL==(fpin=fopen(fname, "r"))) {
exit(1); exit(1);
} }
bublist = alloc_bubulles(fname, 1000, 0);
if (NULL==bublist) {
fprintf(stderr, "err in %s, aborting...\n", __func__);
abort();
}
print_bublist_desc(bublist, 0);
nbre = 0;
while(cptr=fgets(line, LINE_SZ, fpin)) { while(cptr=fgets(line, LINE_SZ, fpin)) {
if (verbosity>1) fputs(line, stderr); if (verbosity>1) fputs(line, stderr);
@ -46,16 +56,28 @@ while(cptr=fgets(line, LINE_SZ, fpin)) {
cptr = strtok(NULL, " "); cptr = strtok(NULL, " ");
foo = sscanf(cptr, "%f", &z); foo = sscanf(cptr, "%f", &z);
fprintf(stdout, "%16g %16g %16g\n", x, y, z); memset(&bubulle, 0, sizeof(Bubulle));
niceprint_bubulle(&bubulle, 0);
bubulle.p.x = x;
bubulle.p.y = y;
bubulle.p.z = z;
niceprint_bubulle(&bubulle, 0);
foo = push_bubulle(bublist, &bubulle);
if (foo) {
fprintf(stderr, "err %d on push\n", foo);
break;
}
nbre++;
} }
fclose(fpin); fclose(fpin);
return -7800; if(verbosity) {
fprintf(stderr, "%s : %d vertices loaded\n", __func__, nbre);
}
return 0;
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */

View File

@ -1,5 +1,7 @@
BBFUNCS = ../libbubulles.a BBFUNCS = ../libbubulles.a
read_obj: read_obj.c Makefile ${BBFUNCS} OPT = -Wall -g -DDEBUG_LEVEL=1 -DMUST_ABORT
gcc -Wall -DDEBUG_LEVEL=1 $< ${BBFUNCS} -o $@
read_obj: read_obj.c Makefile $(BBFUNCS)
gcc $(OPT) $< $(BBFUNCS) -o $@

View File

@ -18,12 +18,10 @@ if (2 != argc) {
exit(0); exit(0);
} }
verbosity = 0; verbosity = 1;
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 -> %d\n", foo);
return 0; return 0;
} }