--- ray/src/rt/raycalls.c 2005/04/19 01:15:06 2.11 +++ ray/src/rt/raycalls.c 2009/12/12 05:20:10 2.17 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: raycalls.c,v 2.11 2005/04/19 01:15:06 greg Exp $"; +static const char RCSid[] = "$Id: raycalls.c,v 2.17 2009/12/12 05:20:10 greg Exp $"; #endif /* * raycalls.c - interface for running Radiance rendering as a library @@ -90,6 +90,7 @@ static const char RCSid[] = "$Id: raycalls.c,v 2.11 20 */ #include +#include #include "ray.h" #include "source.h" @@ -118,6 +119,8 @@ void (*addobjnotify[8])() = {ambnotify, NULL}; int do_irrad = 0; /* compute irradiance? */ +int rand_samp = 0; /* pure Monte Carlo sampling? */ + double dstrsrc = 0.0; /* square source distribution */ double shadthresh = .03; /* shadow threshold */ double shadcert = .75; /* shadow certainty */ @@ -151,7 +154,7 @@ char *amblist[AMBLLEN+1]; /* ambient include/exclude int ambincl = -1; /* include == 1, exclude == 0 */ -extern void +void ray_init( /* initialize ray-tracing calculation */ char *otnm ) @@ -162,7 +165,13 @@ ray_init( /* initialize ray-tracing calculation */ if (ofun[OBJ_SPHERE].funp == o_default) initotypes(); /* initialize urand */ - initurand(2048); + if (rand_samp) { + srandom((long)time(0)); + initurand(0); + } else { + srandom(0L); + initurand(2048); + } /* read scene octree */ readoct(octname = otnm, ~(IO_FILES|IO_INFO), &thescene, NULL); nsceneobjs = nobjects; @@ -173,7 +182,7 @@ ray_init( /* initialize ray-tracing calculation */ /* ready to go... */ } -extern void +void ray_trace( /* trace a primary ray */ RAY *r ) @@ -184,7 +193,7 @@ ray_trace( /* trace a primary ray */ } -extern void +void ray_done( /* free ray-tracing data */ int freall ) @@ -212,7 +221,7 @@ ray_done( /* free ray-tracing data */ } -extern void +void ray_save( /* save current parameter settings */ RAYPARAMS *rp ) @@ -263,7 +272,7 @@ ray_save( /* save current parameter settings */ } -extern void +void ray_restore( /* restore parameter settings */ RAYPARAMS *rp ) @@ -331,7 +340,7 @@ ray_restore( /* restore parameter settings */ } -extern void +void ray_defaults( /* get default parameter values */ RAYPARAMS *rp )