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

Comparing ray/src/rt/m_mist.c (file contents):
Revision 2.14 by schorsch, Sun Jul 27 22:12:03 2003 UTC vs.
Revision 2.18 by greg, Tue Jul 8 18:25:00 2014 UTC

# Line 1 | Line 1
1   #ifndef lint
2 < static const char RCSid[] = "$Id";
2 > static const char RCSid[] = "$Id$";
3   #endif
4   /*
5   * Mist volumetric material.
# Line 11 | Line 11 | static const char RCSid[] = "$Id";
11  
12   #include  "ray.h"
13   #include  "source.h"
14 + #include  "rtotypes.h"
15  
16   /*
17   *  A mist volume is used to specify a region in the scene where a certain
# Line 50 | Line 51 | static const char RCSid[] = "$Id";
51  
52   #define RELAYDELIM      '>'             /* relay delimiter character */
53  
54 + static int inslist(int  *sl, int  n);
55 + static int srcmatch(SRCREC  *sp, char  *id);
56 + static void add2slist(RAY  *r, int  *sl);
57  
58 +
59   static int
60 < inslist(sl, n)          /* return index of source n if it's in list sl */
61 < register int  *sl;
62 < register int  n;
60 > inslist(                /* return index of source n if it's in list sl */
61 >        int  *sl,
62 >        int  n
63 > )
64   {
65 <        register int  i;
65 >        int  i;
66  
67          for (i = sl[0]; i > 0; i--)
68                  if (sl[i] == n)
# Line 66 | Line 72 | register int  n;
72  
73  
74   static int
75 < srcmatch(sp, id)        /* check for an id match on a light source */
76 < register SRCREC  *sp;
77 < register char  *id;
75 > srcmatch(       /* check for an id match on a light source */
76 >        SRCREC  *sp,
77 >        char  *id
78 > )
79   {
80 <        register char  *cp;
80 >        char  *cp;
81                                                  /* check for relay sources */
82          while ((cp = strchr(id, RELAYDELIM)) != NULL) {
83                  if (!(sp->sflags & SVIRTUAL) || sp->so == NULL)
# Line 87 | Line 94 | register char  *id;
94  
95  
96   static void
97 < add2slist(r, sl)        /* add source list to ray's */
98 < register RAY  *r;
99 < register int  *sl;
97 > add2slist(      /* add source list to ray's */
98 >        RAY  *r,
99 >        int  *sl
100 > )
101   {
102          static int  slspare[MAXSLIST+1];        /* in case of emergence */
103 <        register int  i;
103 >        int  i;
104  
105          if (sl == NULL || sl[0] == 0)           /* nothing to add */
106                  return;
# Line 109 | Line 117 | register int  *sl;
117  
118  
119   int
120 < m_mist(m, r)            /* process a ray entering or leaving some mist */
121 < OBJREC  *m;
122 < register RAY  *r;
120 > m_mist(         /* process a ray entering or leaving some mist */
121 >        OBJREC  *m,
122 >        RAY  *r
123 > )
124   {
125          RAY  p;
126          int  *myslist = NULL;
127          int  newslist[MAXSLIST+1];
128          COLOR  mext;
129          double  re, ge, be;
130 <        register int  i, j;
130 >        int  i, j;
131                                          /* check arguments */
132          if (m->oargs.nfargs > 7)
133                  objerror(m, USER, "bad arguments");
# Line 156 | Line 165 | register RAY  *r;
165          } else
166                  setcolor(mext, 0., 0., 0.);
167                                                  /* start transmitted ray */
168 <        if (rayorigin(&p, r, TRANS, 1.) < 0)
168 >        if (rayorigin(&p, TRANS, r, NULL) < 0)
169                  return(1);
170          VCOPY(p.rdir, r->rdir);
171          p.slights = newslist;
# Line 213 | Line 222 | register RAY  *r;
222          return(1);
223   memerr:
224          error(SYSTEM, "out of memory in m_mist");
225 +        return 0; /* pro forma return */
226   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines