--- ray/src/ot/oconv.c 2003/06/05 19:29:34 2.15 +++ ray/src/ot/oconv.c 2004/04/12 17:31:27 2.20 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: oconv.c,v 2.15 2003/06/05 19:29:34 schorsch Exp $"; +static const char RCSid[] = "$Id: oconv.c,v 2.20 2004/04/12 17:31:27 greg Exp $"; #endif /* * oconv.c - main program for object to octree conversion. @@ -7,15 +7,14 @@ static const char RCSid[] = "$Id: oconv.c,v 2.15 2003/ * 7/29/85 */ +#include "platform.h" #include "standard.h" - #include "octree.h" - #include "object.h" - #include "otypes.h" - #include "paths.h" +#include "resolu.h" +#include "oconv.h" #define OMARGIN (10*FTINY) /* margin around global cube */ @@ -38,10 +37,15 @@ double mincusize; /* minimum cube size from resolu * void (*addobjnotify[])() = {NULL}; /* new object notifier functions */ +static void addobject(CUBE *cu, OBJECT obj); +static void add2full(CUBE *cu, OBJECT obj, int inc); -main(argc, argv) /* convert object files to an octree */ -int argc; -char *argv[]; + +int +main( /* convert object files to an octree */ + int argc, + char *argv[] +) { FVECT bbmin, bbmax; char *infile = NULL; @@ -52,7 +56,7 @@ char *argv[]; progname = argv[0] = fixargv0(argv[0]); - initotypes(); + ot_initotypes(); for (i = 1; i < argc && argv[i][0] == '-'; i++) switch (argv[i][1]) { @@ -152,27 +156,30 @@ breakopt: writeoct(outflags, &thescene, ofname); /* write structures to stdout */ quit(0); + return 0; /* pro forma return */ } void -quit(code) /* exit program */ -int code; +quit( /* exit program */ + int code +) { exit(code); } void -cputs() /* interactive error */ +cputs(void) /* interactive error */ { /* referenced, but not used */ } void -wputs(s) /* warning message */ -char *s; +wputs( /* warning message */ + char *s +) { if (!nowarn) eputs(s); @@ -180,8 +187,9 @@ char *s; void -eputs(s) /* put string to stderr */ -register char *s; +eputs( /* put string to stderr */ + register char *s +) { static int inln = 0; @@ -194,6 +202,11 @@ register char *s; inln = 0; } + /* conflicting def's in param.h */ +#undef tstbit +#undef setbit +#undef clrbit +#undef tglbit #define bitop(f,i,op) (f[((i)>>3)] op (1<<((i)&7))) #define tstbit(f,i) bitop(f,i,&) @@ -202,9 +215,11 @@ register char *s; #define tglbit(f,i) bitop(f,i,^=) -addobject(cu, obj) /* add an object to a cube */ -register CUBE *cu; -OBJECT obj; +static void +addobject( /* add an object to a cube */ + register CUBE *cu, + OBJECT obj +) { int inc; @@ -240,10 +255,12 @@ OBJECT obj; } -add2full(cu, obj, inc) /* add object to full node */ -register CUBE *cu; -OBJECT obj; -int inc; +static void +add2full( /* add object to full node */ + register CUBE *cu, + OBJECT obj, + int inc +) { OCTREE ot; OBJECT oset[MAXSET+1]; @@ -254,7 +271,8 @@ int inc; objset(oset, cu->cutree); cukid.cusize = cu->cusize * 0.5; - if (inc==O_IN || oset[0] < objlim || cukid.cusize < mincusize) { + if (inc==O_IN || oset[0] < objlim || cukid.cusize < + (oset[0] < MAXSET ? mincusize : mincusize/256.0)) { /* add to set */ if (oset[0] >= MAXSET) { sprintf(errmsg, "set overflow in addobject (%s)",