--- ray/src/util/ranimove.c 2004/03/26 21:36:20 3.10 +++ ray/src/util/ranimove.c 2010/11/03 05:05:21 3.14 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id"; +static const char RCSid[] = "$Id: ranimove.c,v 3.14 2010/11/03 05:05:21 greg Exp $"; #endif /* * Radiance object animation program @@ -168,8 +168,9 @@ userr: void -eputs(s) /* put string to stderr */ -register char *s; +eputs( /* put string to stderr */ + register char *s +) { static int midline = 0; @@ -187,6 +188,16 @@ register char *s; } +void +quit(ec) /* make sure exit is called */ +int ec; +{ + if (ray_pnprocs > 0) /* close children if any */ + ray_pclose(0); + exit(ec); +} + + static void setdefaults(void) /* set default values */ { @@ -603,19 +614,18 @@ getoctspec( /* get octree for the given frame */ ) { static char combuf[1024]; - int cfm = 0; + static int cfm = 0; int uses_inline; FILE *fp; int i; /* is octree static? */ if (!vdef(MOVE)) return(vval(OCTREEF)); - /* done already */ + /* done already? */ if (n == cfm) return(combuf); /* else create object file */ - strcpy(objtmpf, "movinobj.rad"); - fp = fopen(objtmpf, "w"); + fp = fopen(mktemp(strcpy(objtmpf, TEMPLATE)), "w"); if (fp == NULL) { sprintf(errmsg, "cannot write to moving objects file '%s'", objtmpf); @@ -646,8 +656,9 @@ getoctspec( /* get octree for the given frame */ vdef(OCONV) ? vval(OCONV) : "", vval(OCTREEF), objtmpf); else - sprintf(combuf, "!xform -f %s | oconv -f -i '%s' -", - objtmpf, vval(OCTREEF)); + sprintf(combuf, "!xform -f %s | oconv %s -f -i '%s' -", + objtmpf, vdef(OCONV) ? vval(OCONV) : "", + vval(OCTREEF)); return(combuf); }