ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/ranimove2.c
(Generate patch)

Comparing ray/src/util/ranimove2.c (file contents):
Revision 3.1 by greg, Sat Feb 22 02:07:30 2003 UTC vs.
Revision 3.5 by schorsch, Sun Jul 27 22:12:04 2003 UTC

# Line 9 | Line 9 | static const char      RCSid[] = "$Id$";
9   *  Created by Gregory Ward on Wed Jan 08 2003.
10   */
11  
12 < /* ====================================================================
13 < * The Radiance Software License, Version 1.0
14 < *
15 < * Copyright (c) 1990 - 2002 The Regents of the University of California,
16 < * through Lawrence Berkeley National Laboratory.   All rights reserved.
17 < *
18 < * Redistribution and use in source and binary forms, with or without
19 < * modification, are permitted provided that the following conditions
20 < * are met:
21 < *
22 < * 1. Redistributions of source code must retain the above copyright
23 < *         notice, this list of conditions and the following disclaimer.
24 < *
25 < * 2. Redistributions in binary form must reproduce the above copyright
26 < *       notice, this list of conditions and the following disclaimer in
27 < *       the documentation and/or other materials provided with the
28 < *       distribution.
29 < *
30 < * 3. The end-user documentation included with the redistribution,
31 < *           if any, must include the following acknowledgment:
32 < *             "This product includes Radiance software
33 < *                 (http://radsite.lbl.gov/)
34 < *                 developed by the Lawrence Berkeley National Laboratory
35 < *               (http://www.lbl.gov/)."
36 < *       Alternately, this acknowledgment may appear in the software itself,
37 < *       if and wherever such third-party acknowledgments normally appear.
38 < *
39 < * 4. The names "Radiance," "Lawrence Berkeley National Laboratory"
40 < *       and "The Regents of the University of California" must
41 < *       not be used to endorse or promote products derived from this
42 < *       software without prior written permission. For written
43 < *       permission, please contact [email protected].
44 < *
45 < * 5. Products derived from this software may not be called "Radiance",
46 < *       nor may "Radiance" appear in their name, without prior written
47 < *       permission of Lawrence Berkeley National Laboratory.
48 < *
49 < * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
50 < * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
51 < * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
52 < * DISCLAIMED.   IN NO EVENT SHALL Lawrence Berkeley National Laboratory OR
53 < * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
54 < * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
55 < * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
56 < * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
57 < * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
58 < * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
59 < * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
60 < * SUCH DAMAGE.
61 < * ====================================================================
62 < *
63 < * This software consists of voluntary contributions made by many
64 < * individuals on behalf of Lawrence Berkeley National Laboratory.   For more
65 < * information on Lawrence Berkeley National Laboratory, please see
66 < * <http://www.lbl.gov/>.
67 < */
12 > #include "copyright.h"
13  
14 + #include <string.h>
15 +
16   #include "ranimove.h"
17   #include "random.h"
18  
# Line 91 | Line 38 | refine_first()                 /* initial refinement pass */
38                  printf("\tFirst refinement pass...");
39                  fflush(stdout);
40          }
41 <        bzero((void *)esamp, sizeof(int)*hres*vres);
41 >        memset((void *)esamp, '\0', sizeof(int)*hres*vres);
42          /*
43           * In our initial pass, we look for lower error pixels from
44           * the same objects in the previous frame, and copy them here.
# Line 104 | Line 51 | refine_first()                 /* initial refinement pass */
51                  if (xmbuffer[n] == MO_UNK)
52                          continue;
53                  xp = x + xmbuffer[n];
54 <                if ((xp < 0 | xp >= hres))
54 >                if ((xp < 0) | (xp >= hres))
55                          continue;
56                  yp = y + ymbuffer[n];
57 <                if ((yp < 0 | yp >= vres))
57 >                if ((yp < 0) | (yp >= vres))
58                          continue;
59                  np = fndx(xp, yp);
60                                          /* make sure we hit same object */
# Line 188 | Line 135 | static void
135   sum_consp(cdest, cs)            /* sum in conspicuity result */
136   register struct ConspSum        *cdest, *cs;
137   {
138 <        if ((cdest == NULL | cs == NULL))
138 >        if ((cdest == NULL) | (cs == NULL))
139                  return;
140          addcolor(cdest->vsum, cs->vsum);
141          addcolor(cdest->v2sum, cs->v2sum);
# Line 218 | Line 165 | register struct ConspSum       *cs;
165          } else
166                  eest = estimaterr(cs->vsum, cs->v2sum, cs->nsamp, cs->nsamp);
167          
168 <        if ((x0 == x1-1 & y0 == y1-1)) {        /* update pixel error */
168 >        if ((x0 == x1-1) & (y0 == y1-1)) {      /* update pixel error */
169                  int     n = fndx(x0, y0);
170                  int     ai;
171                  int     ne;
# Line 288 | Line 235 | struct ConspSum        *cs;
235          struct ConspSum mysum;
236          int     i;
237  
238 <        if ((x0 >= x1 | y0 >= y1))
238 >        if ((x0 >= x1) | (y0 >= y1))
239                  error(CONSISTENCY, "bad call to subconspicuity");
240  
241          clr_consp(&mysum);                      /* prepare sum */
242  
243 <        if ((x0 == x1-1 & y0 == y1-1)) {        /* single pixel */
243 >        if ((x0 == x1-1) & (y0 == y1-1)) {      /* single pixel */
244                  double  hls;
245                  register int    n = fndx(x0, y0);
246                  if (sbuffer[n]) {
# Line 349 | Line 296 | conspicuity()                  /* compute conspicuous error map */
296          int     fx, fy;
297                                          /* reuse previous z-buffer */
298          cerrmap = (float *)zprev;
299 <        bzero((void *)cerrmap, sizeof(float)*hres*vres);
299 >        memset((void *)cerrmap, '\0', sizeof(float)*hres*vres);
300          cerrzero = 1;
301                                          /* compute base pixel frequency */
302          pixel_deg = .5*(hres/vw.horiz + vres/vw.vert);
# Line 442 | Line 389 | register int   n;
389                  if (sbuffer[n] != 1)
390                          error(CONSISTENCY, "bad code in ray_refine");
391                  if (getambcolor(ctmp, obuffer[n]) &&
392 <                                (colval(ctmp,RED) > 0.01 &
393 <                                 colval(ctmp,GRN) > 0.01 &
394 <                                 colval(ctmp,BLU) > 0.01)) {
392 >                                (colval(ctmp,RED) > 0.01) &
393 >                                (colval(ctmp,GRN) > 0.01) &
394 >                                (colval(ctmp,BLU) > 0.01)) {
395                          for (i = 0; i < 3; i++)
396                                  asump->diffsum[i] +=
397                                      (colval(ir.rcol,i) - colval(cbuffer[n],i))
# Line 481 | Line 428 | long   nrays;
428          int     i;
429                                          /* skip if nothing significant */
430          if (ndtset && cerrzero)
431 <                return;
431 >                return(0);
432                                          /* initialize priority list */
433          pord = (int *)malloc(sizeof(int)*hres*vres);
434          for (i = hres*vres; i--; )
# Line 524 | Line 471 | int    pass;
471          static long     ray_cnt = 0;
472          static double   ctime_used = 0;
473          static int      csp_cnt = 0;
474 <        int     timed = (fcur > fbeg | pass > 0 | quickstart);
474 >        int     timed = (fcur > fbeg) | (pass > 0) | (quickstart);
475          double  time_start, rtime_start, time_done;
476          struct AmbSum   myAmbSum;
477          long    rays_todo, nr;
478          register int    n;
479                                          /* IBR refinement? */
480 <        if ((pass == 0 & fcur > fbeg))
480 >        if ((pass == 0) & (fcur > fbeg))
481                  return(refine_first());
482                                          /* any time left? */
483          time_start = getTime();
# Line 652 | Line 599 | if (pass == 1) {
599          return(1);
600   nomore:
601                                          /* make sure error map is updated */
602 <        if ((fcur == fbeg | pass > 1))
602 >        if ((fcur == fbeg) | (pass > 1))
603                  comp_frame_error();
604          return(0);
605   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines