--- ray/src/util/ranimove2.c 2003/02/22 02:07:30 3.1 +++ ray/src/util/ranimove2.c 2003/07/27 22:12:04 3.5 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: ranimove2.c,v 3.1 2003/02/22 02:07:30 greg Exp $"; +static const char RCSid[] = "$Id: ranimove2.c,v 3.5 2003/07/27 22:12:04 schorsch Exp $"; #endif /* * ranimove2.c @@ -9,63 +9,10 @@ static const char RCSid[] = "$Id: ranimove2.c,v 3.1 20 * Created by Gregory Ward on Wed Jan 08 2003. */ -/* ==================================================================== - * The Radiance Software License, Version 1.0 - * - * Copyright (c) 1990 - 2002 The Regents of the University of California, - * through Lawrence Berkeley National Laboratory. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes Radiance software - * (http://radsite.lbl.gov/) - * developed by the Lawrence Berkeley National Laboratory - * (http://www.lbl.gov/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Radiance," "Lawrence Berkeley National Laboratory" - * and "The Regents of the University of California" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact radiance@radsite.lbl.gov. - * - * 5. Products derived from this software may not be called "Radiance", - * nor may "Radiance" appear in their name, without prior written - * permission of Lawrence Berkeley National Laboratory. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of Lawrence Berkeley National Laboratory. For more - * information on Lawrence Berkeley National Laboratory, please see - * . - */ +#include "copyright.h" +#include + #include "ranimove.h" #include "random.h" @@ -91,7 +38,7 @@ refine_first() /* initial refinement pass */ printf("\tFirst refinement pass..."); fflush(stdout); } - bzero((void *)esamp, sizeof(int)*hres*vres); + memset((void *)esamp, '\0', sizeof(int)*hres*vres); /* * In our initial pass, we look for lower error pixels from * the same objects in the previous frame, and copy them here. @@ -104,10 +51,10 @@ refine_first() /* initial refinement pass */ if (xmbuffer[n] == MO_UNK) continue; xp = x + xmbuffer[n]; - if ((xp < 0 | xp >= hres)) + if ((xp < 0) | (xp >= hres)) continue; yp = y + ymbuffer[n]; - if ((yp < 0 | yp >= vres)) + if ((yp < 0) | (yp >= vres)) continue; np = fndx(xp, yp); /* make sure we hit same object */ @@ -188,7 +135,7 @@ static void sum_consp(cdest, cs) /* sum in conspicuity result */ register struct ConspSum *cdest, *cs; { - if ((cdest == NULL | cs == NULL)) + if ((cdest == NULL) | (cs == NULL)) return; addcolor(cdest->vsum, cs->vsum); addcolor(cdest->v2sum, cs->v2sum); @@ -218,7 +165,7 @@ register struct ConspSum *cs; } else eest = estimaterr(cs->vsum, cs->v2sum, cs->nsamp, cs->nsamp); - if ((x0 == x1-1 & y0 == y1-1)) { /* update pixel error */ + if ((x0 == x1-1) & (y0 == y1-1)) { /* update pixel error */ int n = fndx(x0, y0); int ai; int ne; @@ -288,12 +235,12 @@ struct ConspSum *cs; struct ConspSum mysum; int i; - if ((x0 >= x1 | y0 >= y1)) + if ((x0 >= x1) | (y0 >= y1)) error(CONSISTENCY, "bad call to subconspicuity"); clr_consp(&mysum); /* prepare sum */ - if ((x0 == x1-1 & y0 == y1-1)) { /* single pixel */ + if ((x0 == x1-1) & (y0 == y1-1)) { /* single pixel */ double hls; register int n = fndx(x0, y0); if (sbuffer[n]) { @@ -349,7 +296,7 @@ conspicuity() /* compute conspicuous error map */ int fx, fy; /* reuse previous z-buffer */ cerrmap = (float *)zprev; - bzero((void *)cerrmap, sizeof(float)*hres*vres); + memset((void *)cerrmap, '\0', sizeof(float)*hres*vres); cerrzero = 1; /* compute base pixel frequency */ pixel_deg = .5*(hres/vw.horiz + vres/vw.vert); @@ -442,9 +389,9 @@ register int n; if (sbuffer[n] != 1) error(CONSISTENCY, "bad code in ray_refine"); if (getambcolor(ctmp, obuffer[n]) && - (colval(ctmp,RED) > 0.01 & - colval(ctmp,GRN) > 0.01 & - colval(ctmp,BLU) > 0.01)) { + (colval(ctmp,RED) > 0.01) & + (colval(ctmp,GRN) > 0.01) & + (colval(ctmp,BLU) > 0.01)) { for (i = 0; i < 3; i++) asump->diffsum[i] += (colval(ir.rcol,i) - colval(cbuffer[n],i)) @@ -481,7 +428,7 @@ long nrays; int i; /* skip if nothing significant */ if (ndtset && cerrzero) - return; + return(0); /* initialize priority list */ pord = (int *)malloc(sizeof(int)*hres*vres); for (i = hres*vres; i--; ) @@ -524,13 +471,13 @@ int pass; static long ray_cnt = 0; static double ctime_used = 0; static int csp_cnt = 0; - int timed = (fcur > fbeg | pass > 0 | quickstart); + int timed = (fcur > fbeg) | (pass > 0) | (quickstart); double time_start, rtime_start, time_done; struct AmbSum myAmbSum; long rays_todo, nr; register int n; /* IBR refinement? */ - if ((pass == 0 & fcur > fbeg)) + if ((pass == 0) & (fcur > fbeg)) return(refine_first()); /* any time left? */ time_start = getTime(); @@ -652,7 +599,7 @@ if (pass == 1) { return(1); nomore: /* make sure error map is updated */ - if ((fcur == fbeg | pass > 1)) + if ((fcur == fbeg) | (pass > 1)) comp_frame_error(); return(0); }